Lanson

V1

2022/11/10阅读:7主题:丘比特忙

大数据必学Java基础(二十六):数组的应用题

数组的应用题

一、最值问题

1、实现一个功能:给定一个数组int[] arr = {12,3,7,4,8,125,9,45}; ,求出数组中最大的数

思路图:

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、画内存

方法的实参传递给形参的时候一定要注意:一切都是值传递:

如果是基本数据类型,那么传递的就是字面值

如果是引用数据类型,那么传递的就是地址值

二、查询问题

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、实现一个功能

添加逻辑

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));
        }
}

分类:

后端

标签:

Java

作者介绍

Lanson
V1

CSDN大数据领域博客专家