Java学习-数组的应用题

本文介绍了如何在Java中实现数组的最大值查询、提取方法、以及在指定位置添加和删除元素的操作,包括基本的逻辑和示例代码。
摘要由CSDN通过智能技术生成
数组的应用题

最值问题

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

思路图:

  1. public class TestArray04{
  2.     public static void main(String[] args){
  3.                 //实现一个功能:给定一个数组int[] arr = {12,3,7,4,8,125,9,45}; ,求出数组中最大的数。
  4.                 //1.给定一个数组
  5.                 int[] arr = {12,3,7,4,8,125,9,45,666,36};
  6.                 
  7.                 //2.求出数组中的最大值:
  8.                 //先找一个数上擂台,假定认为这个数最大:
  9.                 int maxNum = arr[0];
  10.                 for(int i=0;i<arr.length;i++){
  11.                         if(arr[i]>maxNum){
  12.                                 maxNum = arr[i];
  13.                         }
  14.                 }
  15.                 System.out.println("当前数组中最大的数为:"+maxNum);
  16.                
  17.         }
  18. }

【2】将求最大值的方法提取出来:

  1. public class TestArray04{
  2.     public static void main(String[] args){
  3.                 //实现一个功能:给定一个数组int[] arr = {12,3,7,4,8,125,9,45}; ,求出数组中最大的数。
  4.                 //1.给定一个数组
  5.                 int[] arr = {12,3,7,4,8,725,9,45,666,36};
  6.                 
  7.                 //2.求出数组中的最大值:
  8.                 //调用方法:
  9.                 int num = getMaxNum(arr);
  10.                 System.out.println("当前数组中最大的数为:"+num);
  11.         }
  12.        
  13.         /*
  14.         想提取一个方法:求数组中的最大值
  15.         求哪个数组中的最大值 ---》不确定因素:哪个数组 (形参)---》返回值:最大值
  16.         */
  17.         public static int getMaxNum(int[] arr){
  18.                 //先找一个数上擂台,假定认为这个数最大:
  19.                 int maxNum = arr[0];
  20.                 for(int i=0;i<arr.length;i++){
  21.                         if(arr[i]>maxNum){
  22.                                 maxNum = arr[i];
  23.                         }
  24.                 }
  25.                 return maxNum;
  26.                
  27.         }
  28. }

【3】画内存:

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

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

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

查询问题

【1】查询指定位置的元素

  1. public class TestArray05{
  2.     public static void main(String[] args){
  3.                 //查询指定位置的元素
  4.                 //给定一个数组:
  5.                 int[] arr = {12,34,56,7,3,10};
  6.                 //查找索引为2的位置上对应的元素是什么?
  7.                 System.out.println(arr[2]);
  8.         }
  9. }

上面代码体现了数组的一个优点:

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

【2】查询指定元素的位置--》找出元素对应的索引 

  1. public class TestArray06{
  2.     public static void main(String[] args){
  3.                 //查询指定元素的位置--》找出元素对应的索引
  4.                 //给定一个数组:
  5.                 int[] arr = {12,34,56,7,3,56};
  6.                 //           0  1  2  3 4  5
  7.                 
  8.                 //功能:查询元素888对应的索引:
  9.                 int index = -1; //这个初始值只要不是数组的索引即可
  10.                 for(int i=0;i<arr.length;i++){
  11.                         if(arr[i]==12){
  12.                                 index = i;//只要找到了元素,那么index就变成为i
  13.                                 break;//只要找到这个元素,循环就停止
  14.                         }
  15.                 }
  16.                 if(index!=-1){
  17.                         System.out.println("元素对应的索引:"+index);
  18.                 }else{//index==-1
  19.                         System.out.println("查无次数!");
  20.                 }
  21.         }
  22. }

【3】将查指定元素对应的索引的功能提取为方法:

  1. public class TestArray06{
  2.     public static void main(String[] args){
  3.                 //查询指定元素的位置--》找出元素对应的索引
  4.                 //给定一个数组:
  5.                 int[] arr = {12,34,56,7,3,56};
  6.                 //           0  1  2  3 4  5
  7.                 
  8.                 //功能:查询元素888对应的索引:
  9.                 //调用方法:
  10.                 int index = getIndex(arr,999);
  11.                 //后续对index的值进行判断:
  12.                 if(index!=-1){
  13.                         System.out.println("元素对应的索引:"+index);
  14.                 }else{//index==-1
  15.                         System.out.println("查无次数!");
  16.                 }
  17.         }
  18.        
  19.         /*
  20.         定义一个方法:查询数组中指定的元素对应的索引:
  21.         不确定因素:哪个数组,哪个指定元素  (形参)
  22.         返回值:索引
  23.        
  24.         */
  25.         public static int getIndex(int[] arr,int ele){
  26.                 int index = -1; //这个初始值只要不是数组的索引即可
  27.                 for(int i=0;i<arr.length;i++){
  28.                         if(arr[i]==ele){
  29.                                 index = i;//只要找到了元素,那么index就变成为i
  30.                                 break;//只要找到这个元素,循环就停止
  31.                         }
  32.                 }
  33.                 return index;
  34.         }
  35. }
添加元素

【1】实现一个功能:

添加逻辑:

  1. public class TestArray07{
  2.     public static void main(String[] args){
  3.                 //功能:给定一个数组,在数组下标为2的位置上添加一个元素91
  4.                 
  5.                 //1.给定一个数组:
  6.                 int[] arr = {12,34,56,7,3,10,55,66,77,88,999,89};
  7.                 //           0  1   2 3 4 5
  8.                 //2.输出增加元素前的数组:
  9.                 System.out.print("增加元素前的数组:");
  10.                 for(int i=0;i<arr.length;i++){
  11.                         if(i!=arr.length-1){
  12.                                 System.out.print(arr[i]+",");
  13.                         }else{//i==arr.length-1 最后一个元素不用加,
  14.                                 System.out.print(arr[i]);
  15.                         }
  16.                 }
  17.                
  18.                 //3.增加元素
  19.                 /*
  20.                 arr[5] = arr[4];
  21.                 arr[4] = arr[3];
  22.                 arr[3] = arr[2];
  23.                 */
  24.                 int index = 1;//在这个指定位置添加 元素
  25.                 for(int i=arr.length-1;i>=(index+1);i--){
  26.                         arr[i] = arr[i-1];
  27.                 }
  28.                 arr[index] = 666;
  29.                
  30.                
  31.                 //4.输出增加元素后的数组:
  32.                 System.out.print("\n增加元素后的数组:");
  33.                 for(int i=0;i<arr.length;i++){
  34.                         if(i!=arr.length-1){
  35.                                 System.out.print(arr[i]+",");
  36.                         }else{//i==arr.length-1 最后一个元素不用加,
  37.                                 System.out.print(arr[i]);
  38.                         }
  39.                 }
  40.                
  41.         }
  42. }

【2】将添加功能提取为一个 方法:

  1. import java.util.Scanner;
  2. public class TestArray07{
  3.     public static void main(String[] args){
  4.                 //功能:给定一个数组,在数组下标为2的位置上添加一个元素91
  5.                 
  6.                 //1.给定一个数组:
  7.                 int[] arr = {12,34,56,7,3,10,55,66,77,88,999,89};
  8.                 //           0  1   2 3 4 5
  9.                 //2.输出增加元素前的数组:
  10.                 /*
  11.                 System.out.print("增加元素前的数组:");
  12.                 for(int i=0;i<arr.length;i++){
  13.                         if(i!=arr.length-1){
  14.                                 System.out.print(arr[i]+",");
  15.                         }else{//i==arr.length-1 最后一个元素不用加,
  16.                                 System.out.print(arr[i]);
  17.                         }
  18.                 }
  19.                 */
  20.                 
  21.                 //从键盘接收数据:
  22.                 Scanner sc = new Scanner(System.in);
  23.                 System.out.println("请录入你要添加元素的指定下标:");
  24.                 int index = sc.nextInt();
  25.                 System.out.println("请录入你要添加的元素:");
  26.                 int ele = sc.nextInt();
  27.                
  28.                 //3.增加元素
  29.                 //调用方法:
  30.                 insertEle(arr,index,ele);
  31.                
  32.                
  33.                
  34.                 //4.输出增加元素后的数组:
  35.                 System.out.print("\n增加元素后的数组:");
  36.                 for(int i=0;i<arr.length;i++){
  37.                         if(i!=arr.length-1){
  38.                                 System.out.print(arr[i]+",");
  39.                         }else{//i==arr.length-1 最后一个元素不用加,
  40.                                 System.out.print(arr[i]);
  41.                         }
  42.                 }
  43.                
  44.         }
  45.        
  46.        
  47.         /*
  48.         提取一个添加元素的方法:
  49.         在数组的指定位置上添加一个指定的元素。
  50.         在哪个数组的哪个位置添加哪个元素!
  51.         不确定因素:形参:哪个数组,哪个位置,哪个元素
  52.         返回值:无
  53.        
  54.         */
  55.         public static void insertEle(int[] arr,int index,int ele){
  56.                 for(int i=arr.length-1;i>=(index+1);i--){
  57.                         arr[i] = arr[i-1];
  58.                 }
  59.                 arr[index] = ele;
  60.         }
  61. }
删除元素

【1】实现一个功能:删除指定位置上的元素

逻辑:

  1. import java.util.Arrays;
  2. public class TestArray08{
  3.     public static void main(String[] args){
  4.                 //功能:给定一个数组,删除下标为2元素
  5.                 
  6.                 //1.给定一个数组:
  7.                 int[] arr = {12,34,56,7,3,10,34,45,56,7,666};
  8.                 //           0  1   2 3 4 5
  9.                 //2.输出删除前的数组:
  10.                 System.out.println("删除元素前的数组:"+Arrays.toString(arr));
  11.                
  12.                 //3.删除
  13.                 /*
  14.                 arr[2] = arr[3];
  15.                 arr[3] = arr[4];
  16.                 arr[4] = arr[5];
  17.                 */
  18.                 int index = 0;
  19.                 for(int i=index;i<=arr.length-2;i++){
  20.                         arr[i] = arr[i+1];
  21.                 }
  22.                 arr[arr.length-1] = 0;
  23.                
  24.                 //4.输出删除后的数组:
  25.                 System.out.println("删除元素后的数组:"+Arrays.toString(arr));
  26.         }
  27. }

【2】实现一个功能:删除指定元素

  1. import java.util.Arrays;
  2. public class TestArray09{
  3.     public static void main(String[] args){
  4.                 //功能:给定一个数组,删除元素3:
  5.                 
  6.                 //1.给定一个数组:
  7.                 int[] arr = {12,34,56,7,3,10,34,45,56,7,666};
  8.                  
  9.                 //2.输出删除前的数组:
  10.                 System.out.println("删除元素前的数组:"+Arrays.toString(arr));
  11.                
  12.                
  13.                 //找到要删除的元素对应的索引即可:
  14.                 int index = -1 ;
  15.                 for(int i=0;i<arr.length;i++){
  16.                         if(arr[i]==1200){
  17.                                 index = i;
  18.                                 break;
  19.                         }
  20.                 }
  21.                
  22.                 //3.删除
  23.                
  24.                 if(index!=-1){
  25.                         for(int i=index;i<=arr.length-2;i++){
  26.                                 arr[i] = arr[i+1];
  27.                         }
  28.                         arr[arr.length-1] = 0;
  29.                 }else{//index==-1
  30.                         System.out.println("根本没有你要删除的元素!");
  31.                 }
  32.                
  33.                
  34.                 //4.输出删除后的数组:
  35.                 System.out.println("删除元素后的数组:"+Arrays.toString(arr));
  36.         }
  37. }
  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值