Java学习10--数组

数组:

数组概述

  • 数组能够使用=声明+创建

    • 先声明,才能在程序中使用。
      声明方法: 结构:变量的类型[] 变量的名字 = 变量的值;
      比如:int[] nums;推荐这种写法
      或者:int nums[];这种写法也能用,是早期为了C或者C++程序员方便使用的
    • 再创建:Java语言使用new操作符来创建数组
  • 创建的语法如下
    可拆分成两行
    结构:

      • 变量的类型[] 变量的名字; (上一步刚做的“声明”数组)
      • 变量的名字= new 变量的类型[N];(创建数组)

    上面的两行其实等于下面的一行
    变量类型[] 变量名=new 变量类型[N];(按照这一行或者上一行写)

举例
比如int[] nums=new nums[10];
可拆分为int[] nums; nums = new int[20];

比如double[] data=new double[10];
可拆分为double[] data; data =new double[10];

常用知识点:
获取数组长度 数组名.length比如 nums.length

初始化数组

两种方式:静态初始化+动态初始化

  • 静态初始化
int[] nums={1,2,3,4,5,6,7,8,9};
  • 动态初始化
int[] b=new int[20];
b[2]=85;

小结:
数组是相同数据类型(可以是任何类型)的有序集合。
数组也是对象。数组元素相当于对象的成员变量。
数组长度是确定的,不可变的。越界报错out of bounds

举例
有一个已知数组,将其中的数组按顺序依次输出,找到数组中最大的那个data,并计算数组各项data的和。

public class testjan05 {

    public static void main(String[] args) {
        int n=0;
        int [] nums = {122,466,46,776,887,676,5,6,7,8798,3235};
        int max = nums[0];
        int sum = nums[0];

        for (int i = 0; i < nums.length; i++) {
            System.out.println(nums[i]);
            if (nums[i]>max) max=nums[i];
            sum +=nums[i];
        }
        System.out.println("max:"+max);
        System.out.println("sum:"+sum);
    }


}

输出结果:

122
466
46
776
887
676
5
6
7
8798
3235
max:8798
sum:15146

Process finished with exit code 0

数组的快速输出

IDEA里可以使用 数组名.for直接创建基于这个数组的for循环,方便打印输出这个数组的内容,但是这个方法不适用给数组的个别元素赋值。

比如键入 nums.for会生成

for (int num : nums) { //这里的nums就是数组,前面的num就是系统随便起的数组元素名字
            System.out.println(num);//这句就能按顺序,快速输出数组的元素
        }

作业练习:反转输出一个数组

下面列举了两种输出方法

import java.util.Scanner;
public class testjan05 {

    public static void main(String[] args) {
        int n=0;
        int [] nums = {122,466,46,776,887,676,5,6,7,8798,3235};

        for (int num : f_reverse(nums)) {
            System.out.println(num);
        }

        System.out.println("下面是一般for方法输出的数组:");
        for (int i = nums.length-1; i >=0; i--) {
            System.out.println(nums[i]);
        }


    }

    public static int[] f_reverse(int[] rev_in) {
        int [] rev_out = new int[rev_in.length];
        for (int i = 0; i < rev_in.length; i++) {
            rev_out[rev_in.length-1-i]=rev_in[i];
        }
        return rev_out;
    }


}

输出结果


3235
8798
7
6
5
676
887
776
46
466
122
下面是一般for方法输出的数组
3235
8798
7
6
5
676
887
776
46
466
122

Process finished with exit code 0

Arrays类

多维数组

定义一个4行5列的数组
int [][] nums ={{1,2,3,4,5},{11,22,33,44,55},{21,22,23,24,25},{31,32,33,34,35}};

举例


public class testjan05 {
    public static void main(String[] args) {
        int [][] nums={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35}};

        System.out.println(nums[2][1]);//22
    }
}

/**相当于4行5列,如下图所式,注意数组的下标是从0开始的
 *  \[0],[1],[2],[3] 
 * [0]01,02,03,04,05
 * [1]11,12,13,14,15
 * [2]21,22,23,24,25
 * [3]31,32,33,34,35
 */

输出结果

22

Process finished with exit code 0


补充,打印一个数组,也可以使用快捷命令
System.out.println(Arrays.toString(数组名称));

比如对于上面的二维数组,使用下面的命令
System.out.println(Arrays.toString(nums[1]));
即可输出

[11, 12, 13, 14, 15]

Process finished with exit code 0

你可能感兴趣的:(java,学习,python)