天天看點

大資料必學Java基礎(二十六):數組的應用題

文章目錄

​​數組的應用題​​

​​一、最值問題​​

​​1、實作一個功能:給定一個數組int[] arr = {12,3,7,4,8,125,9,45}; ,求出數組中最大的數​​

​​2、 将求最大值的方法提取出來​​

​​3、畫記憶體​​

​​二、查詢問題​​

​​1、查詢指定位置的元素​​

​​2、查詢指定元素的位置--》找出元素對應的索引​​

​​3、将查指定元素對應的索引的功能提取為方法​​

​​三、添加元素​​

​​1、實作一個功能​​

​​2、将添加功能提取為一個方法 ​​

​​四、删除元素​​

​​1、實作一個功能:删除指定位置上的元素​​

數組的應用題

一、最值問題

1、實作一個功能:給定一個數組int[] arr = {12,3,7,4,8,125,9,45}; ,求出數組中最大的數

思路圖:

大資料必學Java基礎(二十六):數組的應用題
public class TestArray04{
    public static void main(String[] args){
                //實作一個功能:給定一個數組int[] arr = {12,3,7,4,8,125,9,45}; ,求出數組中最大的數。
                //1.給定一個數組
                int[] arr = {12,3,7,4,8,125,9,45,666,36};
                
                //2.求出數組中的最大值:
                //先找一個數上擂台,假定認為這個數最大:
                int maxNum = arr[0];
                for(int i=0;i<arr.length;i++){
                        if(arr[i]>maxNum){
                                maxNum = arr[i];
                        }
                }
                System.out.println("目前數組中最大的數為:"+maxNum);
                
        }
}      

2、 将求最大值的方法提取出來

public class TestArray04{
    public static void main(String[] args){
                //實作一個功能:給定一個數組int[] arr = {12,3,7,4,8,125,9,45}; ,求出數組中最大的數。
                //1.給定一個數組
                int[] arr = {12,3,7,4,8,725,9,45,666,36};
                
                //2.求出數組中的最大值:
                //調用方法:
                int num = getMaxNum(arr);
                System.out.println("目前數組中最大的數為:"+num);
        }
        
        /*
        想提取一個方法:求數組中的最大值
        求哪個數組中的最大值 ---》不确定因素:哪個數組 (形參)---》傳回值:最大值
        */
        public static int getMaxNum(int[] arr){
                //先找一個數上擂台,假定認為這個數最大:
                int maxNum = arr[0];
                for(int i=0;i<arr.length;i++){
                        if(arr[i]>maxNum){
                                maxNum = arr[i];
                        }
                }
                return maxNum;
                
        }
}      

3、畫記憶體

方法的實參傳遞給形參的時候一定要注意:一切都是值傳遞:

如果是基本資料類型,那麼傳遞的就是字面值

如果是引用資料類型,那麼傳遞的就是位址值

大資料必學Java基礎(二十六):數組的應用題

二、查詢問題

1、查詢指定位置的元素

public class TestArray05{
    public static void main(String[] args){
                //查詢指定位置的元素
                //給定一個數組:
                int[] arr = {12,34,56,7,3,10};
                //查找索引為2的位置上對應的元素是什麼?
                System.out.println(arr[2]);
        }
}      

上面代碼展現了數組的一個優點:

在按照位置查詢的時候,直接一步到位,效率非常高

2、查詢指定元素的位置--》找出元素對應的索引

public class TestArray06{
    public static void main(String[] args){
                //查詢指定元素的位置--》找出元素對應的索引 
                //給定一個數組:
                int[] arr = {12,34,56,7,3,56};
                //           0  1  2  3 4  5
                
                //功能:查詢元素888對應的索引:
                int index = -1; //這個初始值隻要不是數組的索引即可
                for(int i=0;i<arr.length;i++){
                        if(arr[i]==12){
                                index = i;//隻要找到了元素,那麼index就變成為i
                                break;//隻要找到這個元素,循環就停止
                        }
                }
                if(index!=-1){
                        System.out.println("元素對應的索引:"+index);
                }else{//index==-1
                        System.out.println("查無次數!");
                }
        }
}      

3、将查指定元素對應的索引的功能提取為方法

public class TestArray06{
    public static void main(String[] args){
                //查詢指定元素的位置--》找出元素對應的索引 
                //給定一個數組:
                int[] arr = {12,34,56,7,3,56};
                //           0  1  2  3 4  5
                
                //功能:查詢元素888對應的索引:
                //調用方法:
                int index = getIndex(arr,999);
                //後續對index的值進行判斷:
                if(index!=-1){
                        System.out.println("元素對應的索引:"+index);
                }else{//index==-1
                        System.out.println("查無次數!");
                }
        }
        
        /*
        定義一個方法:查詢數組中指定的元素對應的索引:
        不确定因素:哪個數組,哪個指定元素  (形參)
        傳回值:索引
        
        */
        public static int getIndex(int[] arr,int ele){
                int index = -1; //這個初始值隻要不是數組的索引即可
                for(int i=0;i<arr.length;i++){
                        if(arr[i]==ele){
                                index = i;//隻要找到了元素,那麼index就變成為i
                                break;//隻要找到這個元素,循環就停止
                        }
                }
                return index;
        }
}      

三、添加元素

1、實作一個功能

添加邏輯

大資料必學Java基礎(二十六):數組的應用題
public class TestArray07{
    public static void main(String[] args){
                //功能:給定一個數組,在數組下标為2的位置上添加一個元素91
                
                //1.給定一個數組:
                int[] arr = {12,34,56,7,3,10,55,66,77,88,999,89};
                //           0  1   2 3 4 5
                //2.輸出增加元素前的數組:
                System.out.print("增加元素前的數組:");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1){
                                System.out.print(arr[i]+",");
                        }else{//i==arr.length-1 最後一個元素不用加,
                                System.out.print(arr[i]);
                        }
                }
                
                //3.增加元素
                /*
                arr[5] = arr[4];
                arr[4] = arr[3];
                arr[3] = arr[2];
                */
                int index = 1;//在這個指定位置添加 元素
                for(int i=arr.length-1;i>=(index+1);i--){
                        arr[i] = arr[i-1];
                }
                arr[index] = 666;
                
                
                //4.輸出增加元素後的數組:
                System.out.print("\n增加元素後的數組:");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1){
                                System.out.print(arr[i]+",");
                        }else{//i==arr.length-1 最後一個元素不用加,
                                System.out.print(arr[i]);
                        }
                }
                
        }    
}      

2、将添加功能提取為一個方法 

import java.util.Scanner;
public class TestArray07{
    public static void main(String[] args){
                //功能:給定一個數組,在數組下标為2的位置上添加一個元素91
                
                //1.給定一個數組:
                int[] arr = {12,34,56,7,3,10,55,66,77,88,999,89};
                //           0  1   2 3 4 5
                //2.輸出增加元素前的數組:
                /*
                System.out.print("增加元素前的數組:");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1){
                                System.out.print(arr[i]+",");
                        }else{//i==arr.length-1 最後一個元素不用加,
                                System.out.print(arr[i]);
                        }
                }
                */
                
                //從鍵盤接收資料:
                Scanner sc = new Scanner(System.in);
                System.out.println("請錄入你要添加元素的指定下标:");
                int index = sc.nextInt();
                System.out.println("請錄入你要添加的元素:");
                int ele = sc.nextInt();
                
                //3.增加元素
                //調用方法:
                insertEle(arr,index,ele);
                
                
                
                //4.輸出增加元素後的數組:
                System.out.print("\n增加元素後的數組:");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1){
                                System.out.print(arr[i]+",");
                        }else{//i==arr.length-1 最後一個元素不用加,
                                System.out.print(arr[i]);
                        }
                }
                
        }    
        
        
        /*
        提取一個添加元素的方法:
        在數組的指定位置上添加一個指定的元素。
        在哪個數組的哪個位置添加哪個元素!
        不确定因素:形參:哪個數組,哪個位置,哪個元素
        傳回值:無
        
        */
        public static void insertEle(int[] arr,int index,int ele){
                for(int i=arr.length-1;i>=(index+1);i--){
                        arr[i] = arr[i-1];
                }
                arr[index] = ele;
        }
}      

四、删除元素

1、實作一個功能:删除指定位置上的元素

import java.util.Arrays;
public class TestArray08{
    public static void main(String[] args){
                //功能:給定一個數組,删除下标為2元素
                
                //1.給定一個數組:
                int[] arr = {12,34,56,7,3,10,34,45,56,7,666};
                //           0  1   2 3 4 5
                //2.輸出删除前的數組:
                System.out.println("删除元素前的數組:"+Arrays.toString(arr));
                
                //3.删除
                /*
                arr[2] = arr[3];
                arr[3] = arr[4];
                arr[4] = arr[5];
                */
                int index = 0;
                for(int i=index;i<=arr.length-2;i++){
                        arr[i] = arr[i+1];
                }
                arr[arr.length-1] = 0;
                
                //4.輸出删除後的數組:
                System.out.println("删除元素後的數組:"+Arrays.toString(arr));
        }
}      
  • 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨