Java-数组的定义和使用(上)

简介: Java-数组的定义和使用(上)

一、数组的基本概念



       1.1 为什么要使用数组


               假设现在要存5个学生的javaSE考试成绩,并对其进行输出,则可有


public static void main(String[] args){
        int score1 = 70;
        int score2 = 80;
        int score3 = 85;
        int score4 = 60;
        int score5 = 90;
        System.out.println(score1);
        System.out.println(score2);
        System.out.println(score3);
        System.out.println(score4);
        System.out.println(score5);
}

5aa7a463100540c8bdacf912a0101300.png


               数据是同种类型,如果要存入多个数据,上述方法就非常麻烦,可以用一种更简单的方法来存储数据,那就是数组。


       1.2 什么是数组


             数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。

               注意:数组中存放的元素其类型相同,数组的空间是连在一起的每个空间有自己的编号,起始位置编号即数组的下标为0


       1.3 数组的创建及初始化


               1.数组的创建

T[] 数组名 = new T[N];


               T:数组中存放元素的类型,T[]:数组的类型,N:数组的长度。

int[] array1 = new int[10];
        double[] array2 = new double[5];


              2.数组的初始化


               数组的初始化主要分为动态初始化以及静态初始化。


              动态初始化:在创建数组时,直接指定数组中元素的个数。


int[] array = new int[10];


               静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定。

               格式:T[] 数组名称 = {data1, data2, data3, ..., datan};

int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
                double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};


                 注意:静态初始化虽然没有指定数组的长度,但编译器在编译时会根据{}中元素个数来确定数组的长度,静态初始化可以简写,省去后面的new T[]。

int[] array1 = {0,1,2,3,4,5,6,7,8,9};
                double[] array2 = {1.0, 2.0, 3.0, 4.0, 5.0};


               静态和动态初始化也可以分为两步,但是省略格式不可以。

int[] array1;
                array1 = new int[10];
                int[] array2;
                array2 = new int[]{10, 20, 30};
                // 编译失败
                // int[] array3;
                // array3 = {1, 2, 3};

              如果没有对数组进行初始化,数组中元素有其默认值,如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,如果数组中存储元素类型为引用类型,默认值为null。

类型 默认值
byte       0
short 0
int 0
long 0
float 0.0f
double 0.0
char /u0000
boolean false

   

 1.4 数组的使用


               数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,该编号称为数组的下标,数组可以通过下标访问其任意位置的元素。


               例如

int[]array = new int[]{10, 20, 30, 40, 50};
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[3]);
        System.out.println(array[4]);
        // 也可以通过[]对数组中的元素进行修改
        array[0] = 100;
        System.out.println(array[0]);

b168bcf7a2284759973b567303825a90.png


               注意:数组支持随机访问,即通过下标访问快速访问数组中任意位置的元素,下标从0开始,介于[0, N)之间不包含N,N为元素个数。


               遍历数组:将数组中的所有元素都访问一遍。

int[]array = new int[]{10, 20, 30, 40, 50};
        for(int i = 0; i < 5; i++){
        System.out.println(array[i]);

c2fe1b76212f4b03b66138ab4a911960.png

               也可以使用 for-each 遍历数组。

int[] array = {1, 2, 3};
             for (int x : array) {
             System.out.println(x);
             }

3da2592cd9bf4c47b66fa5b375b3ab3a.png

               在数组中可以通过 数组对象.length 来获取数组的长度。


int[]array = new int[]{10, 20, 30, 40, 50};
        for(int i = 0; i < array.length; i++){
        System.out.println(array[i]);
        }

27874f7f9a2e48df9a05b9d810996faf.png

     

目录
相关文章
|
5天前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
14天前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
29 4
|
14天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
15 2
|
22天前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
24天前
|
Oracle Java 关系型数据库
重新定义 Java 对象相等性
本文探讨了Java中的对象相等性问题,包括自反性、对称性、传递性和一致性等原则,并通过LaptopCharger类的例子展示了引用相等与内容相等的区别。文章还介绍了如何通过重写`equals`方法和使用`Comparator`接口来实现更复杂的相等度量,以满足特定的业务需求。
16 3
|
30天前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
42 9
|
27天前
|
存储 Java 编译器
Java集合定义其泛型
Java集合定义其泛型
17 1
|
28天前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
18 3
|
29天前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
21 1
|
1月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
13 1