Java ArrayList
Java ArrayList
ArrayList类是一个大小可变的数组类,包含在java.util
包中。
Java中,内置数组和ArrayList的区别在于,内置数组的大小不能改变(如果想在数组中添加或删除元素,必须创建一个新数组),而ArrayList中,元素可以添加和删除。语法也略有不同:
示例
创建ArrayList对象cars
:
import java.util.ArrayList; // 导入ArrayList类
ArrayList<String> cars = new ArrayList<String>(); // 创建一个ArrayList对象
如果你不知道“包”是什么,请参考我们的Java包教程。
添加项目
ArrayList类有许多方法。要向ArrayList添加元素,可以使用add()
方法:
示例
import java.util.ArrayList;
public class MyClass {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
访问一个项目
要访问ArrayList中的元素,使用get()
方法,传入元素的索引号:
示例
cars.get(0);
记住: 数组索引以0开头: [0]是第一个元素,[1]是第二个元素,等等。
修改一个项目
要修改一个元素,使用set()
方法,传入元素的索引号:
示例
cars.set(0, "Opel");
删除一个项目
要删除一个元素,使用remove()
方法,传入元素的索引号:
示例
cars.remove(0);
要删除ArrayList中的所有元素,使用clear()
方法:
示例
cars.clear();
ArrayList大小
要知道一个ArrayList有多少个元素,可以使用size()
方法:
示例
cars.size();
遍历ArrayList
可使用for
循环遍历ArrayList的元素,使用size()
方法指定循环次数:
示例
public class MyClass {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
for (int i = 0; i < cars.size(); i++) {
System.out.println(cars.get(i));
}
}
}
也可以使用for-each
遍历ArrayList:
示例
public class MyClass {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
for (String i : cars) {
System.out.println(i);
}
}
}
其他类型
ArrayList中的元素实际上是对象。在上面的例子中,我们创建了类型为“String”的元素(对象)。记住,Java中的字符串是对象(而不是基本类型)。
要使用其他类型,例如int
,必须指定一个等效的包装类: Integer
类,其他基本类型对应的包装类有: Boolean (boolean
),Character (char
), Double (double
),等等:
示例
创建一个ArrayList来存储数字(添加Integer类型的元素):
import java.util.ArrayList;
public class MyClass {
public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(10);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(25);
for (int i : myNumbers) {
System.out.println(i);
}
}
}
数组排序
java.util
包中,另一个有用的类是Collections
类,它包含了sort()
方法,可以对列表按字母或数字顺序排序:
示例
字符串数组排序:
import java.util.ArrayList;
import java.util.Collections; // 导入Collections类
public class MyClass {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
Collections.sort(cars); // cars数组排序
for (String i : cars) {
System.out.println(i);
}
}
}
示例
整数数组排序:
import java.util.ArrayList;
import java.util.Collections; // 导入Collections类
public class MyClass {
public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(33);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(34);
myNumbers.add(8);
myNumbers.add(12);
Collections.sort(myNumbers); // myNumbers数组排序
for (int i : myNumbers) {
System.out.println(i);
}
}
}