ArrayList
类是List
接口的实现,允许我们创建可调整大小的数组。
Java数组与ArrayList
在Java中,我们需要先声明数组的大小,然后才能使用它。一旦声明了数组的大小,就很难更改它。
要处理此问题,我们可以使用ArrayList
类。 java.util
包中存在的ArrayList
类允许我们创建可调整大小的数组。
与数组不同,当我们从数组列表中添加或删除元素时,数组列表( ArrayList
类的对象)可以自动调整其容量。因此,数组列表也称为动态数组。
创建一个ArrayList
这是我们可以用Java创建数组列表的方法:
ArrayList arrayList= new ArrayList<>();
此处, 类型表示阵列列表的类型。例如,
// create Integer type arraylist
ArrayList arrayList = new ArrayList<>();
// create String type arraylist
ArrayList arrayList = new ArrayList<>();
在上面的程序中,我们使用了Integer
和String
。在这里, Integer
是int
类型的相应包装器类。
包装器类是包装原始数据类型的类。例如, Integer
类包装int
类型, Float
类包装float
类型,等等。
注意:我们无法创建原始数据类型(如int
, float
, char
等)的数组列表。相反,我们必须使用其对应的包装器类。
对于字符串, String
是一个类,并且没有包装器类。因此,我们按原样使用String
。
我们还可以使用List
接口创建数组列表。这是因为ArrayList
类实现了List
接口。
List list = new ArrayList<>();
ArrayList的方法
ArrayList
提供了各种方法,使我们可以执行数组列表操作。
将元素添加到ArrayList
1.使用add()方法
要将单个元素添加到数组列表,请使用add()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList animals = new ArrayList<>();
// Add elements
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
}
}
输出
ArrayList: [Dog, Cat, Horse]
2.使用索引号
我们还可以使用索引将元素添加到数组列表中。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList animals = new ArrayList<>();
// Add elements
animals.add(0,"Dog");
animals.add(1,"Cat");
animals.add(2,"Horse");
System.out.println("ArrayList: " + animals);
}
}
输出
ArrayList: [Dog, Cat, Horse]
3.将一个数组列表的元素添加到另一个数组列表
要将数组列表的所有元素添加到新数组列表,请使用addAll()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList mammals = new ArrayList<>();
mammals.add("Dog");
mammals.add("Cat");
mammals.add("Horse");
System.out.println("Mammals: " + mammals);
ArrayList animals = new ArrayList<>();
animals.add("Crocodile");
// Add all elements of mammals in animals
animals.addAll(mammals);
System.out.println("Animals: " + animals);
}
}
输出
Mammals: [Dog, Cat, Horse]
Animals: [Crocodile, Dog, Cat, Horse]
使用asList()初始化ArrayList
与数组不同,我们不能直接初始化数组列表。但是,我们可以使用Arrays
类的asList()
方法来达到相同的效果。
为了使用asList()
方法,我们必须首先导入java.util.Arrays
包。
例如,
import java.util.ArrayList;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
// Creating an array list
ArrayList animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
System.out.println("ArrayList: " + animals);
// Access elements of the array list
String element = animals.get(1);
System.out.println("Accessed Element: " + element);
}
}
输出
ArrayList: [Cat, Cow, Dog]
Accessed Elemenet: Cow
在上面的示例中,请注意以下表达式:
new ArrayList<>(Arrays.asList(("Cat", "Cow", "Dog"));
在这里,我们首先创建了一个由3个元素组成的数组: “ Cat” , “ Cow”和“ Dog” 。然后,使用asList()
方法将数组转换为数组列表。
要了解有关初始化ArrayList
不同方法的更多信息,请访问:一行中的ArrayList的初始化
访问ArrayList元素
1.使用get()方法
要随机访问数组列表的元素,我们使用get()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Horse");
animals.add("Cat");
System.out.println("ArrayList: " + animals);
// Get the element from the array list
String str = animals.get(0);
System.out.print("Element at index 0: " + str);
}
}
输出
ArrayList: [Dog, Horse, Cat]
Element at index 0: Dog
2.使用iterator()方法
要顺序访问数组列表的元素,我们使用iterator()
方法。我们必须导入java.util.Iterator
包才能使用此方法。例如,
import java.util.ArrayList;
import java.util.Iterator;
class Main {
public static void main(String[] args){
ArrayList animals = new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
animals.add("Zebra");
// Create an object of Iterator
Iterator iterate = animals.iterator();
System.out.print("ArrayList: ");
// Use methods of Iterator to access elements
while(iterate.hasNext()){
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
输出
ArrayList: Dog, Cat, Horse, Zebra,
注意事项 :
- 如果数组列表中存在下一个元素,则
hasNext()
返回true
。 -
next()
返回数组列表中的下一个元素
更改ArrayList元素
要更改数组列表的元素,可以使用set()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Change the element of the array list
animals.set(2, "Zebra");
System.out.println("Modified ArrayList: " + animals);
}
}
输出
ArrayList: [Dog, Cat, Horse]
Modified ArrayList: [Dog, Cat, Zebra]
删除ArrayList元素
1.使用remove()方法
要从数组列表中删除一个元素,我们可以使用remove()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals = new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("Initial ArrayList: " + animals);
// Remove element from index 2
String str = animals.remove(2);
System.out.println("Final ArrayList: " + animals);
System. out.println("Removed Element: " + str);
}
}
输出
Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: [Dog, Cat]
Removed Element: Horse
2.使用removeAll()方法
要从数组列表中删除所有元素,我们使用removeAll()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals = new ArrayList<>();
// Add elements in the ArrayList
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("Initial ArrayList: " + animals);
// Remove all the elements
animals.removeAll(animals);
System.out.println("Final ArrayList: " + animals);
}
}
输出
Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: []
3.使用clear()方法
我们还可以使用clear()
方法从数组列表中删除所有元素。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("Initial ArrayList: " + animals);
// Remove all the elements
animals.clear();
System.out.println("Final ArrayList: " + animals);
}
}
输出
Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: []
注意: clear()
方法比removeAll()
方法更有效。
遍历ArrayList
1.使用for循环
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating an array list
ArrayList animals = new ArrayList<>();
animals.add("Cow");
animals.add("Cat");
animals.add("Dog");
System.out.println("ArrayList: " + animals);
// Using for loop
System.out.println("Accessing individual elements: ");
for(int i = 0; i < animals.size(); i++) {
System.out.print(animals.get(i));
System.out.print(", ");
}
}
}
输出
ArrayList: [Cow, Cat, Dog]
Accessing individual elements:
Cow, Cat, Dog,
2.使用forEach循环
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating an array list
ArrayList animals = new ArrayList<>();
animals.add("Cow");
animals.add("Cat");
animals.add("Dog");
System.out.println("ArrayList: " + animals);
// Using forEach loop
System.out.println("Accessing individual elements: ");
for(String animal : animals) {
System.out.print(animal);
System.out.print(", ");
}
}
}
输出
ArrayList: [Cow, Cat, Dog]
Accessing individual elements:
Cow, Cat, Dog,
在两个示例中,我们都使用循环访问了数组列表的各个元素。
获取ArrayList的长度
为了获得数组列表的长度,我们使用size()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals= new ArrayList<>();
// Adding elements in the arrayList
animals.add("Dog");
animals.add("Horse");
animals.add("Cat");
System.out.println("ArrayList: " + animals);
// getting the size of the arrayList
System.out.println("Size: " + animals.size());
}
}
输出
ArrayList: [Dog, Horse, Cat]
Size: 3
排序ArrayList的元素
为了对数组列表的元素进行排序,我们使用Collections
类的sort()
方法。为了使用它,我们必须首先导入java.util.Collections
包。
默认情况下,排序以字母或数字升序进行。例如,
import java.util.ArrayList;
import java.util.Collections;
class Main {
public static void main(String[] args){
ArrayList animals= new ArrayList<>();
// Add elements in the array list
animals.add("Horse");
animals.add("Zebra");
animals.add("Dog");
animals.add("Cat");
System.out.println("Unsorted ArrayList: " + animals);
// Sort the array list
Collections.sort(animals);
System.out.println("Sorted ArrayList: " + animals);
}
}
输出
Unsorted ArrayList: [Horse, Zebra, Dog, Cat]
Sorted ArrayList: [Cat, Dog, Horse, Zebra]
要了解有关对数组列表进行排序的更多信息,请访问Java ArrayList sort。
Java ArrayList到数组
在Java中,我们可以使用toArray()
方法将数组列表转换为数组。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Create a new array of String type
String[] arr = new String[animals.size()];
// Convert ArrayList into an array
animals.toArray(arr);
System.out.print("Array: ");
for(String item:arr) {
System.out.print(item+", ");
}
}
}
输出
ArrayList: [Dog, Cat, Horse]
Array: Dog, Cat, Horse,
Java Array到ArrayList
我们还可以将数组转换为数组列表。为此,我们可以使用Arrays
类的asList()
方法。
要使用asList()
,我们必须首先导入java.util.Arrays
包。例如,
import java.util.ArrayList;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
// Create an array of String type
String[] arr = {"Dog", "Cat", "Horse"};
System.out.print("Array: ");
// Print array
for(String str: arr) {
System.out.print(str);
System.out.print(" ");
}
// Create an ArrayList from an array
ArrayList animals = new ArrayList<>(Arrays.asList(arr));
System.out.println("\nArrayList: " + animals);
}
}
输出
Array: Dog, Cat, Horse
ArrayList: [Dog, Cat, Horse]
在上面的程序中,我们首先创建了String
类型的数组arr
。
然后,我们使用asList()
方法将数组转换为数组列表。
Java ArrayList转换为字符串
要将数组列表转换为String
,我们可以使用toString()
方法。例如,
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList animals = new ArrayList<>();
// Add elements in the ArrayList
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Convert ArrayList into an String
String str = animals.toString();
System.out.println("String: " + str);
}
}
输出
ArrayList: [Dog, Cat, Horse]
String: [Dog, Cat, Horse]
注意: toString()
将整个数组列表转换为单个String
。
其他ArrayList方法
Methods | Descriptions |
---|---|
clone() |
Creates a new array list with the same element, size, and capacity. |
contains() |
Searches the array list for the specified element and returns a boolean result. |
ensureCapacity() |
Specifies the total element the array list can contain. |
isEmpty() |
Checks if the array list is empty. |
indexOf() |
Searches a specified element in an array list and returns the index of the element. |
trimToSize() |
Reduces the capacity of an array list to its current size. |