【Java】数组与列表
首先
我是一个编程初学者。我正在网上学习编程,并希望进一步加深理解。我想将所学的内容作为备忘录,并继续加深理解。如果有任何错误或建议,请指出。谢谢。
与Ruby数组的不同
Java的数组与Ruby的数组性质不同。
在Java中,数组需要在最开始确定要存储的元素数量,并且似乎不能在之后更改元素的数量。
如果要增加元素,可以选择创建一个大小较大的数组并复制原始数据,或者使用一种叫做ArrayList的列表。
Java 数组
class Main {
public static void main(String[] args) {
int[] scores;
scores = new int[3];
scores[0] = 1;
scores[1] = 5;
scores[2] = 10;
System.out.println(scores[0]);
System.out.println(scores[1]);
System.out.println(scores[2]);
}
}
sh -c javac -classpath .:target/dependency/* -d . $(find . -type f -name '*.java')
java -classpath .:target/dependency/* Main
1
5
10
对于上述的代码进行解释。
使用Java数组的步骤如下:
① 声明数组
② 创建数组元素,并将其赋值给数组
③ 将值赋给数组元素
进行数组声明
声明一个存储整型数字的数组可以写作”int[] scores;”。
int[] scores;
在中文中,可以这样表达:
「int」是用于指定要存储的数据类型作为元素的内容。例如,如果要存储长整型的数组,则声明为 long[] scores;。
通过这个描述,可以得知进行了一个数组的声明。
创建数组元素并将其分配给数组。
scores = new int[3];
其中,在右边部分,使用了”new int[3];”这段代码。
这段代码创建了三个整数类型的元素。
然后将它们赋值给数组scores。
通过上述代码,我们可以声明一个数组,并准备好容纳三个元素的托盘。
将值分配给数组的元素
最后一个步骤是进行值的赋值。
刚刚我写下了以下的代码。
scores[0] = 1;
在配列scores的第一个元素上赋值为“1”。
这种写法与Ruby相似,指定索引为“0”来表示“第一个”也与Ruby相同。
此外,当要取出数组中的元素时,可按以下方式进行操作。
scores[0]
这个书写方式也与Ruby相同。
由于使用数组时有一些不同的写法,所以我会一一描述。
关于数组的各种描述方法
同时声明数组并创建元素的方法
在先前执行的代码中,我们将数组的声明和元素的创建分开执行,如下所示。
int[] scores;
scores = new int[3];
这两个可以用一行文字来表述如下。
int[] scores = new int[3];
在声明数组时使用类型推断的方法
使用类型推断声明数组的方式如下:
var scores = new int[3];
通过将三个类型为int的元素赋值给scores数组,可以推断出scores是用于存储它们的数组。
在中文中本地化地转述如下,只提供一种选项:
③ 一次性完成数组的声明和赋值的方法
如果在声明数组时赋值确定的情况下,可以省略如下所示的写法。
int[] scores = {1, 5, 10};
如果在声明时没有确定赋值的值,那么无法使用这种简洁的描述方法。
关于列表
列表是与Ruby数组类似的数据管理机制。
具有以下特点:
在Java中,有两种类型的列表可以对元素进行排序管理,还可以对元素进行事后添加或删除的操作。
ArrayList – 数组列表
LinkedList – 链表
有关ArrayList
ArraList 是用於使用可變長度陣列的機制。可變長度陣列指的是可以改變長度(元素數量)的陣列。
Ruby 的数组是可变长度的,所以它更接近于 Java 的 ArrayList 在性质和使用方法上。
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<Integer>();
scores.add(1);
scores.add(5);
scores.add(10);
scores.add(15);
System.out.println(scores.get(0));
System.out.println(scores.get(1));
System.out.println(scores.get(2));
System.out.println(scores.get(3));
}
}
在使用ArrayList时,需要先导入库。
在编写上述代码时,请注意在第一行有一个import语句。
sh -c javac -classpath .:target/dependency/* -d . $(find . -type f -name '*.java')
java -classpath .:target/dependency/* Main
1
5
10
15
在上述的代码中,执行了以下四项操作。
①导入库
②声明ArrayList变量
③为ArrayList赋值
④从ArrayList中提取元素
我们将确认每个的使用方式。
① 导入库
在使用ArrayList时,需要导入库。
要进行导入,请在文件开头进行以下描述。
import java.util.ArrayList;
进行ArrayList的声明
ArrayList 的声明和初始化如下进行。
ArrayList<データ型> scores = new ArrayList<データ型>();
我先前的代码创建了一个存储整数的ArrayList,所以我将其描述如下。
ArrayList<Integer> scores = new ArrayList<Integer>();
在这里进行的是两个动作。
1. 用名为”score”的ArrayList声明来存储整数(Integer)。
2. 创建ArrayList的元素。
然后,我们将②赋值给①。
另外,尽管在右边指定了元素的数据类型,但可以省略这一点。即使以以下方式进行描述,也可以正常运行。
ArrayList<Integer> scores = new ArrayList<>();
将值分配给ArrayList。
要在ArrayList中添加元素,需要使用add方法。
在描述的时候,使用add(需要添加的元素值)的方式。
在之前运行的以下代码中,将一个名为scores的ArrayList增加了”1″。
scores.add(1);
使用add方法,元素会被添加到ArrayList的末尾。
从ArrayList中取出元素。
在提取要素时,请使用get方法。
描述是通过get(要获取元素的索引)的方式进行的。与从数组中取出元素相同,当想要取出“第一”元素时,需要将索引指定为“0”。
在之前执行的代码中,从scores中获取了第一个元素。
scores.get(0)