【Java】6 初识数组

简介: 【Java】6 初识数组

数组对于每一门编程语言来说都是重要的数据结构之一,Java 语言中提供的数组是用来存储固定大小的同类型元素。

数组中的每个元素具有相同的数据类型。

在Java中将数组看作一个对象,虽然基本数据类型不是对象,但由基本数据类型组成的数组却是对象。

在程序设计中引入数组可以更有效地管理和处理数据

1.一维数组

一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。

1.1创建一维数组

在使用数组之前,必须首先定义数组变量所属的类型。

声明一维数组有下列两种方式:

数组元素类型 数组名字[ ];

数组元素类型[ ] 数组名字;


数组元素类型决定了数组的数据类型,它可以是Java中任意的数据类型,包括简单类型和组合类型。

数组名字为一个合法的标识符,符号"[ ]“指明该变量是一个数组类型变量。

单个”[ ]"表示要创建的数组是一个一维数组。


1.1.1 一维数组的创建方法1

1.先声明

int arr[];

//声明int型数组,数组中的每个元素都是int型数值


声明数组后,不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型

想真正使用数组,还要为它分配内存空间。

在为数组分配内存空间时必须指明数组的长度。

2.用new关键字进行内存分配

在声明时没有分配内存空间,要使用new关键字来分配内存,然后才可以访问每个元素


//为数组分配内存空间的语法格式:

数组名字 = new 数组元素的类型[数组元素的个数];

//数组名字:被连接到数组变量的名称。

//数组元素的个数:指定数组中变量的个数,即数组的长度


示例:

arr = new int[5];

1

以上代码表示要创建一个含有5个元素的整型数组,并且将创建的数组对象赋给引用变量arr,即通过引用变量arr来引用这个数组


微信图片_20230701132855.png

使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0。

1.1.2 一维数组的创建方法2

声明的同时为数组分配内存

//数组的声明和内存的分配一起执行的语法:

数组元素的类型 数组名 = new数组元素的类型[数组元素的个数];


示例:

int month[ ] = new int[12];

//创建数组month,并指定了数组长度为12


1.2初始化一维数组

数组与基本数据类型一样可以进行初始化操作

数组的初始化可分别初始化数组中的每个元素

数组的初始化的两种方式:

//第一种初始化方式

int arr[] = new int[]{1,2,3,5,25};


//第二种初始化方式

int arr[] = {1,2,3,5,25};

1

2

3

4

5

数组的初始化就是包括在大括号之内用逗号分开的表达式列表。

用逗号(,)分割数组中的各个元素,系统自动为数组分配一定的空间。


第一种初始化方式,将创建5个元素的数组,其元素依次为1、2、3、5、25

第二种初始化方式,会创建5个元素的数组,其元素依次为1、2、3、5、25

1.3使用一维数组

1.3.1访问数组元素

前数组元素的下标为从0开始。

一旦创建了数组,就可以在数组中填入元素

int[] a = new int[100];

//使用一个循环填入元素

for(int i = 0;i < 100; i++)

a[i] = i;

1

2

3

4

★不同的初始化情况

1.创建一个数字数组时,所有元素都初始化为0

2.boolean数组的元素会初始化为false。

3.对象数组的元素则初始化为一个特殊值null,表示这些元素(还)未存放任何对象。


例如,String[] names = new String[10];会创建一个包含10个字符串的数组,所有字符串都为null。如果希望这个数组包含空串,必须为元素指定空串:for(int i = 0; i < 10; i++) names[i] = " " ;

1.3.2数组中元素个数

获得数组中元素的个数,使用array.length

for(int i = 0;i < a.length; i++)

System.out.println(a[i]);


1.3.3 for-each循环

与java流程控制中的for-in是一回事

JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组

//语法格式

for(type element: array)

{

   System.out.println(element);

}


示例:

public class TestArray {

  public static void main(String[] args) {

     double[] myList = {1.9, 2.9, 3.4, 3.5};

     // 打印所有数组元素

     for (double element: myList) {

        System.out.println(element);

     }

  }

}


1.3.4 实例

public class TestArray {

  public static void main(String[] args) {

     // 数组大小

     int size = 10;

     // 定义数组

     double[] myList = new double[size];

     myList[0] = 5.6;

     myList[1] = 4.5;

     myList[2] = 3.3;

     myList[3] = 13.2;

     myList[4] = 4.0;

     myList[5] = 34.33;

     myList[6] = 34.0;

     myList[7] = 45.45;

     myList[8] = 99.993;

     myList[9] = 11123;

     // 计算所有元素的总和

     double total = 0;

     for (int i = 0; i < size; i++) {

        total += myList[i];

     }

     System.out.println("总和为: " + total);

  }

}


先声明了一个数组变量 myList,接着创建了一个包含 10 个 double 类型元素的数组,并且把它的引用赋值给 myList 变量

图片描绘了数组 myList。这里 myList 数组里有 10 个 double 元素,它的下标从 0 到 9

微信图片_20230701132913.png

2.二维数组

二维数组可以看作是特殊的一维数组

2.1创建二维数组

声明二维数组有下列两种方式:

数组元素的类型 数组名字[ ][ ];

数组元素的类型[ ][ ] 数组名字;


2.1.1 二维数组的创建方法1

1.先声明

int a[][];


2.第一种内存分配方式:直接为每一维分配内存空间

a = new int[2][5];

//创建了二维数组a,

//二维数组a中包括两个长度为5的一维数组



微信图片_20230701132926.png

2.第二种内存分配方式:分别为每一维分配内存

a = new int[2][];

a[0] = new int[2];

a[1] = new int[3];


创建了二维数组a,但是只声明了a第一维的长度,也就是“行数”

第二维的长度也就是“列数”,则是为每一行单独声明的,因此创建的数组a是“不定长数组”

微信图片_20230701132944.png



从最高维开始,分别为每一维分配空间


微信图片_20230701133107.png

s[0]=new String[2] 和 s[1]=new String[3] 是为最高维分配引用空间,也就是为最高维限制其能保存数据的最长的长度,然后再为其每个数组元素单独分配空间 s0=new String(“Good”) 等操作


2.1.2 二维数组的创建方法2

声明的同时为数组分配内存

int a = new int[2][4];


2.2初始化二维数组

初始化语法

//初始化语法:

type arrayname[][] = {value1,value2,…,valuen};

//type:数组数据类型

//arrayname:数组名称,一个合法的标识符

//value:二维数组中各元素,都代表一个一维数组


初始化示例:

int myarr[][] = {{12,0},{45,10}};

//初始化二维数组后,要明确数组的下标都是从0开始

//例如,上面的代码中myarr[1][1]的值为10


int型二维数组是以int a[ ][ ] 来定义的,所以可以直接给a[x] [y] 赋值

//给a[1]的第2个元素赋值

a[1][1] = 20;


2.3二维数组的引用

对二维数组中的每个元素,引用方式为 arrayName[index1][index2]

num[1][0];


相关文章
|
14天前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
28 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];`。
|
30天前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
42 9
|
28天前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
18 3
|
1月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
22 6
|
29天前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
21 1
|
30天前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
13 1
|
1月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
22天前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
33 0