【Java】数组与一维数组

100 阅读2分钟

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情

目录

2F3C92DA.jpg

今天阿文介绍的内容:

  • Java的数组
  • 一维数组

Java数组

数组(Array),顾名思义就是一组数据。在Java中,数组也可以视为一种数据类型。它本身是一种引用类型。数组是有序数据的集合,数组中的每个元素必须是相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。

数组类型

int a;      //基本数据类型
int[] b;    //引用数据类型

1.一维数组的初步使用

使用12个月份的天数演示数组的使用方法:

public class Text1 {
    public static void main(String[] args) {
      //定义一个长度为12的一维数组  
      int[] month={31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
      //遍历数组
      for (int i = 0; i < month.length; i++) {
          //注意:数组下标是从0开始
          System.out.println(i + "月" + "一共有" + month[i] + "天");
      }
    }
}

输出结果:

Java数组1.png

注意:

  • 在Java中,下列写法是错误的!
int month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int [12]month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

写Java代码时,在定义数组时不能在方括号中写下数组的长度

  • 在Java数组中,提供了一个公有属性length,表示该数组的长度,调用格式:
Array.length//数组长度

2.一维数组

在上述例子中创建数组的方法称为静态初始化,在声明的同时给出初始数据。

接下来介绍另一种创建数组的方法

2.1一维数组的声明与内存的分配

在Java中使用数组,需经过这两步骤:

  • 声明数组
  • 分配内存给该数组

语法格式

int[] array;            //声明一维数组
array = new int[5];     //分配内存给数组

上面两个步骤也可以用较为简洁的方式,把两行缩写一行来编写

语法格式

int[] array = new int[5];

2.2数组中元素的表示方法

想要使用数组里的元素,可以利用索引来完成。Java的数组索引编号从0开始。以一个名为array长度为5的整形数组为例,array[0]表示为第一个元素,array[1]表示为第二个元素,依次类推

下图为array数组中元素的表示及排列方式:

Java数组2.png

2.3数组元素的赋值

数组在静态初始化时,需在声明时给出初始值,现在来介绍更加灵活的赋值方法

例子:

public class Text1 {
    public static void main(String[] args) {
        //创建了一个Random类型的对象rand
        Random rand = new Random();
        //创建一个数组a,大小为5
        int[] a = new int[5];
        //创建数组b,将数组a赋值给数组b
        int[] b = a;

        for (int i = 0; i < a.length; i++) {
            //给数组a,第i+1个元素赋值
            a[i] = rand.nextInt(100);
            //输出数组a的第i+1个元素
            System.out.print("a"+"["+i+"]"+"="+a[i]+"\t");
            //输出数组b的第i+1个元素
            System.out.println("b"+"["+i+"]"+"="+b[i]);
        }
    }
}

输出结果:

Java数组3.png

为什么输出b的元素可以输出,没有报错呢?

事实上,关键在于"int[] b = a"这行代码,这行代码的含义是将数组a的引用赋值给数组b。由于是引用数据类型,赋值之后a和b指向的数组对象是相同的,换句话说,相当于给数组a取了一个“别名”,这就是Java中广泛使用的概念————引用

2.4数组的应用范例

数组的索引就好像宾馆的房间编号,想找到某个房间,就得先找到房间编号!所以可以求数组中的最大值和最下值。

例子:

public class Text1 {
    public static void main(String[] args) {
        //创建一个数组a,大小为5
        int[] a = {30, 67, 56, 22, 89, 74, 34, 12, 65, 93};
        //定义最大值max和最小值min
        int max = a[0], min = a[0];
        System.out.println("数组a包含的元素:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
            if (a[i] > max) {           //判断是否比最大值大
                max = a[i];             //如果比最大值大,则赋值给max
            } else if (a[i] < min) {    //判断是否比最小值小
                min = a[i];             //如果比最下值小,则赋值给min
            }
        }
        System.out.println();
        System.out.println("最大值为:" + max);
        System.out.println("最下值为:" + min);
    }
}

输出结果:

Java数组4.png

将变量min与max初值设成数组的第1个元素后,再逐一与数组中的各元素相比。比min小,就将该元素的值指定给min存放,使min的内容保持最小;同样,当该元素比max大时,就将该元素的值指定给max存放,使max的内容保持最大。for循环执行完成,也就表示数组中所有的元素都已经比较完毕,此时变量min与max的内容就是最小值与最大值。

总结

  • Java中的数组是引用类型,定义数组是不需要给出数组的长度 好了,今天阿文就介绍到这了... byebye

2F3C4016.jpg