Java陣列的增刪改查操作
阿新 • • 發佈:2018-12-09
import java.util.Scanner;
public class Array {
/* * 增刪改查 * */ /** * 根據下標查詢元素 * * @param arr * @param index * @return 整型元素 * @author ZZY * @time 2018-12-07 14:35 */ public static int queryElementByIndex(int[] arr, int index) { return arr[index]; } /** * 根據元素查詢下標 * * @param arr * @param ele * @return 元素下標 */ public static int queryIndexByElement(int[] arr, int ele) { int index = -1; // 用來記錄下標的變數 // 1:遍歷所有的元素 for (int i = 0; i < arr.length; i++) { // 2 用你要查詢的元素和所有的元素做==比較 if (arr[i] == ele) { // 3 相等判斷成立,記錄當前元素的下標 index = i;// 記錄當前元素的下標 break; // 後面元素就不用判斷了 } } return index; } /** * 求陣列的最大值 * * @param arr * @return 最大值 */ public static int maxValue(int[] arr) { // 1 假設第一個元素是最大值 int max = arr[0]; // 2:遍歷陣列 for (int i = 1; i < arr.length; i++) { // 3 用這個個最大值和後面的元素做大於比較 if (arr[i] > max) { // 4如果後面的元素比這個最大值還大,那麼後面的元素就是最大值 max = arr[i]; } } return max; } /** * 求陣列的最小值 * * @param arr * @return 最小值 */ public static int minValue(int[] arr) { // 1 假設第一個元素是最小值 int min = arr[0]; // 2:遍歷陣列 for (int i = 1; i < arr.length; i++) { // 3 用後面的元素這個最小值和做小於比較 if (arr[i] < min) { // 4如果後面的元素比這個最小值還小,那麼後面的元素就是最小值 min = arr[i]; } } return min; } /** * 給陣列新增元素 * @param arr * @param ele * @param index * @return 返回新的陣列 */ public static int[] addElement(int[] arr, int ele, int index) { // 1:新建一個數組,長度是原陣列長度+1 陣列擴容 int[] newArr = new int[arr.length + 1]; if(index>=0 && index<newArr.length){ // 2 拿到下標為3的前面的元素,放到新陣列按照0 1 2 順序依次存放 for (int i = 0; i < index; i++) { newArr[i] = arr[i]; } // 3 把要新增的元素100放入新陣列下標為3的位置 newArr[index] = 100; // 4 拿到下標為3的後面的元素,放到新陣列按照 4 5 順序依次存放 for (int i = index; i < arr.length; i++) { newArr[i + 1] = arr[i]; } }else{ System.out.println("索引超出範圍"); //超出範圍,返回舊陣列 return arr; } // 5:返回新陣列 return newArr; } /** * 根據下標刪除元素 * @param arr * @param index * @return 原陣列 */ public static int[] delEleByIndex(int[] arr,int index){ if(index>=0 && index<arr.length){ //1:找到下標為2的元素,後面的元素依次覆蓋前面的元素 for(int i = index;i<arr.length-1;i++){ arr[i] = arr[i+1]; } //2:把最後一位賦值為0 arr[arr.length-1] = 0; }else{ System.out.println("沒有此下標"); } //3 返回刪除後的陣列 return arr; } /** * 根據元素刪除元素 * @param arr * @param ele * @return 下標 */ public static int delEleByEle(int[] arr,int ele){ //1 :定義刪除元素的下標 int index = -1; //2:用你要刪除的元素和數組裡面的每一個元素做==比較 for(int i = 0;i<arr.length;i++){ if(ele==arr[i]){ //3:找到要刪除的元素後,記錄下當前元素的下標 index = i; break; //後面就不要比較了 } } //如果index是-1,直接返回,不需要移位 if(index==-1){ return index; } //4:然後後面的下標依次向前移位 for(int i = index;i<arr.length-1;i++){ arr[i] = arr[i+1]; } //5:把最後一位置為0 arr[arr.length-1] = 0; //6 返回陣列的下標即可 return index; } public static void main(String[] args) { int[] arr = { 10, 20, 300, 40, 50 }; int index = delEleByEle(arr,300); if(index!=-1){ for (int i : arr) { System.out.println(i); } }else{ System.out.println("沒有此元素"); } /*arr = delEleByIndex(arr,2); for (int i : arr) { System.out.println(i); } */ /* int[] newArr = addElement(arr,100,-12); for (int i : newArr) { System.out.println(i); }*/ /*int max = maxValue(arr); int min = minValue(arr); System.out.println("最大值是:" + max); System.out.println("最小值是:" + min);
/
/
* int index = 0; int ele = queryElementByIndex(arr,index);
* System.out.println(“下標為”+index+“的元素是:”+ele);
*/
/* * Scanner sc= new Scanner(System.in); * System.out.println("請輸入你要查詢的元素值"); int ele = sc.nextInt(); //你要查詢的元素 * int index = queryIndexByElement(arr,ele); // 4:沒有匹配成功,沒有此元素 * if(index!=-1){ System.out.println("元素"+ele+"的下標是:"+index); }else{ * System.out.println("沒有此元素"); } */ }
}