• Java---数组(练习)


    目录

    数组的概念:

    练习1:

    * 它们的体重分别是 3Kg 、5kg、 1kg、3。4kg、2kg、50kg* 请问这六只鸡的总体重多少? 平均体重是多少?

     练习2:

    要求: 定义一个数组1. double[] 表示是double 类型的数组 ,数组名 hens2. {3,5,1,3.4,2,50}; 表示数组的值/元素,依次表示数组的第几个元素

    数组的使用

    使用方式1----动态初始化

    语法:

    练习题1:

    要求:循环输入5个成绩 ,保存到double数组 ,并输出

    使用方式2----静态初始化

     数组练习:

    练习1:

    要求: 创建一个char类型的26个元素的数组,分别放置‘A’-’Z‘使用for循环访问所有元素并打印出来

     练习2:

    要求:请求出一个数组int【】 的最大值 {4,-1,9,10,23},并得到对应的下标


    数组的概念:

     数组可以存放多个同一类型的数据。数组也是一种数据类型,它是引用数据类型。
     即:数(数据)组(一组)就是一组数据

     数组的定义
      1. 数据类型 数组名【】(【】这个可以也放在数据类型后面) = new 数据类型【大小】    
       2. int a[ ] =new int [5];//创建了一个数组,名字a,存放 5个int
       3. 说明: 这是定义数组的一种方法。
       4. 数组的引用(使用)
       5. 数组名【下标/索引】 

    先来个小练习,了解一下数组是什么

    练习1:

    要求:

    * 它们的体重分别是 3Kg 、5kg、 1kg、3。4kg、2kg、50kg
    * 请问这六只鸡的总体重多少? 平均体重是多少?

    思路分析:
    * 1, 定义 六个变量double ,求和 得到总体重
    * 2. 平均体重 = 总体重/6
    * 3. 分析传统实现方式问题   6=》600
    * 4. 引出新的技术=》数组

    代码实现:

    1. double hen1=3;
    2. double hen2=5;
    3. double hen3=1;
    4. double hen4=3.4;
    5. double hen5=2;
    6. double hen6=50;
    7. double totalWeight=hen1+hen2+hen3+hen4+hen5+hen6;
    8. double avgWeight=totalWeight/6;
    9. System.out.println("总体重="+totalWeight+"平均体重="+avgWeight);

    结果:

     练习2:

    (在前面的那道题的基础上进行了提升)

    要求: 定义一个数组
    1. double[] 表示是double 类型的数组 ,数组名 hens
    2. {3,5,1,3.4,2,50}; 表示数组的值/元素,依次表示数组的第几个元素

    编程思想:

    遍历数组得到数组的所有元素的和,使用for
    1. 我们可以通过hens【下标】来访问数组的元素
       下标是从0开始标号的,比如 第一个元素就是hens【0】
        第2 个元素就是hens【1】,依次类推
    2. 通过for 就可以循环的放问数组的元素/值
    3. 使用一个变量 totalWeight 将各个元素累积

    代码实现:

    1. double[] hens = {3, 5, 1, 3.4, 2, 50};
    2. double totalWeight = 0;
    3. System.out.println("=======使用数组解决========");
    4. //提示: 可以通过数组名 .length 得到数组的大小/长度
    5. System.out.println("数组的长度="+hens.length);
    6. for (int i = 0; i < hens.length; i++) {
    7. // System.out.println("第"+(i+1)+"个元素的值="+hens[i]);
    8. totalWeight += hens[i];
    9. }
    10. System.out.println("总体重=" + totalWeight + "平均体重=" + (totalWeight/hens.length));

    结果:

    数组的使用

    使用方式1----动态初始化

    1. 先声明数组
    2. 创建数组

    语法:

    数据类型 数组名【】=new 数据类型【大小】

    练习题1:

    要求:循环输入5个成绩 ,保存到double数组 ,并输出

    编程思想:

            第一种动态分配方式
        
            * 演示  数据类型 数组名【】=new 数据类型【大小】
            * 循环输入5个成绩 ,保存到double数组 ,并输出
            *
            * 步骤
             1. 创建一个double 数组,大小 5 
                double scores[]=new  double[5];
    第2种动态分配方式,先声明数组,再new分配空间

    代码实现:

    1. //(1)第一种动态分配方式
    2. //double scores[]=new double[5];
    3. //(2)第2种动态分配方式,先声明数组,再new分配空间
    4. double scores[];// 声明数组, 这时scores是null
    5. scores = new double[5];//分配内存空间,可以存放数据
    6. //2,循环输入
    7. //scores.length 表示数组的大小/长度
    8. Scanner myScanner = new Scanner(System.in);
    9. for (int i = 0; i < scores.length; i++) {
    10. System.out.println("请输入第" + (i + 1) + "个元素的值");
    11. scores[i] = myScanner.nextDouble();
    12. }
    13. //输出,遍历数组
    14. System.out.println("====数组的元素/值的情况如下:====");
    15. for (int i = 0; i < scores.length; i++) {
    16. System.out.println("第" + (i + 1) + "个元素的值=" + scores[i]);
    17. }

    结果:

    使用方式2----静态初始化

    •  数组是多个相同类型数据的结合,实现对这些数据的统一管理。

            代码举例:

    1. int[] arr1={1,2,3,60,1.1};//结果是double 不能转换为 int
    2. int[] arr1={1,2,3,60,"hello"};//结果是String 不能转换为 int
    3. double[] arr2={1,2,3,60,1.1}; 这样就可以将int 转为 double

    结果 :

    • 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型,但是不能混用

           代码举例:

    String[] arr3={"北京","ijjl","millan"};
    • 数组创建后,如果没有赋值,有默认值

    默认值如下: 

     int 0; short 0; byte 0;long 0;float 0.0;double 0.0;

     char \u0000;boolean false;Strin         g null;

    代码举例:

    1. double[] arr4=new double[4];
    2. System.out.println("=====数组arr4=====");
    3. for (int i=0;i
    4. System.out.println(arr4[i]);
    5. }

    结果:

    •  使用数组的步骤

           1. 声明数组并开辟空间

           2. 给数组各个元素赋值

           3. 使用数组

    •  数组的下标是从0开始的
    •  数组下标必须在指定范围内使用,否则报:下标越界异常,比如:
    1. int [] arr=new int[5];  
    2. System.out.println(arr[5]);

    结果:

    •   数组属于引用类型,数组型数据是对象(object)

     数组练习:

    练习1:

    要求: 创建一个char类型的26个元素的数组,分别放置‘A’-’Z‘
    使用for循环访问所有元素并打印出来

    提示:char 类型数据运算 ’A‘ +1 =》’B'
    * 思路分析:
    * 1. 定义一个数组char【】 chars=new char【26】
    * 2. 因为‘A’+1=‘B’ 类推,所以老师使用for来赋值
    * 3. 使用for循环访问所有元素

    代码实现:

    1. char[] chars=new char[26];
    2. for (int i =0;i//循环26次
    3. //char 是 char[]
    4. //char[i] 是char
    5. chars[i]=(char) ('A'+i);//'A'+i是int, 需要强制类型转换
    6. }
    7. //循环输出
    8. System.out.println("====char数组=====");
    9. for (int i =0;i//循环26次
    10. System.out.println(chars[i]+"");
    11. }

    结果:

     练习2:

    要求:请求出一个数组int【】 的最大值 {4,-1,9,10,23},并得到对应的下标

    编程思想:
     1, 定义一个int 数组int【】 arr ={4,-1,9,10,23};
     2. 假定max=arr【0】是最大值,maxIndex=0;
     3. 从下标1开始遍历数组arr,如果max<当前元素,说明max不是真正的最大值,我们就max=当前       元素;maxIndex=当前元素下标
     4。 当我们遍历这个数组arr后,max就是真正的最大值,maxIndex最大值对应的下标

    代码实现:

    1. int[] arr={4,-1,9,10,23};
    2. int max=arr[0];//假定第一个元素就是最大值
    3. int maxIndex=0;
    4. for (int i=1;i//从下标1开始遍历arr
    5. if (max//如果max<当前元素
    6. max=arr[i];//把max设置成当前元素
    7. maxIndex=i;
    8. }
    9. }
    10. //当我们遍历这个数组arr后,max就是真正的最大值,maxIndex最大值对应的下标
    11. System.out.println("max="+max+"maxIndex="+maxIndex);

    结果:

  • 相关阅读:
    BERT知识蒸馏Distilled BiLSTM
    Python实现PPT演示文稿中视频的添加、替换及提取
    缓存三大坑
    软件开发项目 质量管理的6大关键事项
    容器命令(docker)
    无序列表和有序列表可以相互嵌套吗?
    cannot convert ‘this‘ pointer from ‘const ‘ to ‘ &‘
    NLP BigModel
    离线安装Redis集群(redis-6.2.4)
    简单线性回归 解析解 最小二乘法
  • 原文地址:https://blog.csdn.net/m0_57448314/article/details/126489771