【JAVA】数组 上

简介: 【JAVA】数组

1. 数组的基本概念


1.1 为什么要使用数组

假设现在要存5个学生的考试成绩,并对其进行输出,按照之前掌握的知识点,我么会写出如下代码:


public class TestStudent{
    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);
    }
}

上述代码没有任何问题,但不好的是:如果有20名同学成绩呢,需要创建20个变量吗?有100个学生的成绩那不得要创建100个变量。


仔细观察这些学生成绩发现:所有成绩的类型都是相同的,那Java中存在可以存储相同类型多个数据的类型吗?


1.2 什么是数组

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


比如现实中的车库:


b3085be12a1358560c931917746fea9b_dded8c7d67154b2281552792c3502de4.png


在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到:


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

那在程序中如何创建数组呢?


1.3 数组的创建及初始化

1.3.1 数组的创建

语法格式:


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

T:表示数组中存放元素的类型

T[]:表示数组的类型

N:表示数组的长度


例如:


int[] array1 = new int[10]; // 创建一个可以容纳10个int类型元素的数组
double[] array2 = new double[5]; // 创建一个可以容纳5个double类型元素的数组
String[] array3 = new double[3]; // 创建一个可以容纳3个字符串元素的数组

1.3.2 数组的初始化

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


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

int[] array = new int[10];

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

语法格式:


 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};
String[] array3 = new String[]{"hell", "Java", "!!!"};

注:


  • 静态初始化虽然没有指定数组的长度,编译器在编译时会根据 {} 中元素个数来确定数组的长度
  • 静态初始化时,{} 中数据类型必须与 [] 前数据类型一致
  • 静态初始化可以简写,省去后面的 new T[]
  • 数组也可以按照如下C语言格式创建
  • 但该种定义方式不太友好,容易造成数组的类型就是 int 的误解,[] 如果在类型之后,就表示数组类型,因此 int[] 结合在一块写意思更清晰
  • 静态和动态初始化也可以分为两步,但是省略格式不可以
//比如下面的 array3 ,运行时就会产生编译失败
int[] array1;
array1 = new int[10];
int[] array2;
array2 = new int[]{10, 20, 30};
int[] array3;
array3 = {1, 2, 3};//error
  • 如果没有对数组进行初始化,数组中元素有其默认值

如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,比如:


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

如果数组中存储元素类型为引用类型,默认值为 null。


相关文章
|
2月前
|
Java
|
6天前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
13天前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
37 9
|
12天前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
14 3
|
17天前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
19 6
|
13天前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
19 1
|
14天前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
12 1
|
25天前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
6天前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
24 0
|
1月前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。