Java ArrayList

在本教程中,我们将学习Java ArrayList类。我们将借助示例学习ArrayList不同的操作和方法。

ArrayList类是List接口的实现,允许我们创建可调整大小的数组。

Java ArrayList类实现List接口。

Java 数组 与 ArrayList

在Java中,我们需要先声明数组的大小,然后才能使用它。一旦声明了数组的大小,就很难更改它。

要解决此问题,我们可以使用ArrayList类。 java.util包中存在的ArrayList类允许我们创建可调整大小的数组。

与数组不同,当我们向数组列表添加或删除元素时,数组列表(ArrayList类的对象)可以自动调整其容量。 因此,数组列表也称为动态数组。

创建ArrayList

这是我们可以在Java中创建数组列表的方法:

ArrayList<Type>arrayList=newArrayList<>();

此处,Type指示数组列表的类型。例如,

//创建整数类型arraylistArrayList<Integer>arrayList=newArrayList<>();//创建字符串类型arraylistArrayList<String>arrayList=newArrayList<>();

在上面的程序中,我们使用了Integer和String。 在这里,Integer是int类型的相应包装类。

包装类是包装原始数据类型的类。例如,Integer类包装了int类型,Float类包装了Float类型,等等。

注意:我们不能创建原始数据类型(如int,float,char等)的数组列表。相反,我们必须使用它们对应的包装器类。

对于字符串,String是一个类,没有包装类。因此,我们按原样使用String。

我们还可以使用List接口创建ArrayList。这是因为ArrayList类实现了List接口。

List<String>list=newArrayList<>();

ArrayList的方法

ArrayList 提供了允许我们执行数组列表操作的各种方法。

将元素添加到ArrayList

1.使用 add() 方法

要将单个元素添加到数组列表,我们使用add()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("ArrayList:"+animals);}}

输出结果

ArrayList:[Dog,Cat,Horse]

2.使用索引号

我们还可以使用索引将元素添加到数组列表中。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//添加元素animals.add(0,"Dog");animals.add(1,"Cat");animals.add(2,"Horse");System.out.println("ArrayList:"+animals);}}

输出结果

ArrayList:[Dog,Cat,Horse]

3.将一个数组列表的元素添加到另一个数组列表

要将数组列表的所有元素添加到新的数组列表,请使用addAll()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>mammals=newArrayList<>();mammals.add("Dog");mammals.add("Cat");mammals.add("Horse");System.out.println("Mammals:"+mammals);ArrayList<String>animals=newArrayList<>();animals.add("Crocodile");//添加mammals所有元素到animalsanimals.addAll(mammals);System.out.println("Animals:"+animals);}}

输出结果

Mammals:[Dog,Cat,Horse]Animals:[Crocodile,Dog,Cat,Horse]

使用asList()初始化ArrayList

与数组不同,我们不能直接初始化数组列表。 但是,我们可以使用Arrays类的asList()方法来达到相同的效果。

为了使用asList()方法,我们必须先导入 java.util.Arrays 包。

例如,

importjava.util.ArrayList;importjava.util.Arrays;classMain{publicstaticvoidmain(String[]args){//创建数组列表ArrayList<String>animals=newArrayList<>(Arrays.asList("Cat","Cow","Dog"));System.out.println("ArrayList:"+animals);//访问数组列表中的元素Stringelement=animals.get(1);System.out.println("访问元素:"+element);}}

输出结果

ArrayList:[Cat,Cow,Dog]访问元素:Cow

在上面的示例中,请注意以下表达式:

newArrayList<>(Arrays.asList(("Cat","Cow","Dog"));

在这里,我们首先在3个元素的数组:"Cat","Cow",和"Dog"。然后,该asList()方法用于将数组转换为数组列表。

访问ArrayList的元素

1.使用get()方法

要随机访问数组列表的元素,我们使用get()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Dog");animals.add("Horse");animals.add("Cat");System.out.println("ArrayList:"+animals);//从数组列表中获取元素Stringstr=animals.get(0);System.out.print("索引0处的元素:"+str);}}

输出结果

ArrayList:[Dog,Horse,Cat]索引0处的元素:Dog

2.使用 iterator() 方法

要按顺序访问数组列表的元素,我们使用iterator()方法。我们必须导入 java.util.Iterator 包才能使用此方法。例如,

importjava.util.ArrayList;importjava.util.Iterator;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");animals.add("Zebra");//创建一个Iterator对象Iterator<String>iterate=animals.iterator();System.out.print("ArrayList:");//使用Iterator的方法访问元素while(iterate.hasNext()){System.out.print(iterate.next());System.out.print(",");}}}

输出结果

ArrayList:Dog,Cat,Horse,Zebra,

注意事项

  • hasNext() - 如果数组列表中有下一个元素,则返回true。

  • next() - 返回数组列表中的下一个元素

更改ArrayList元素

要更改数组列表的元素,我们可以使用set()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("ArrayList:"+animals);//更改数组列表的元素animals.set(2,"Zebra");System.out.println("修改后的ArrayList:"+animals);}}

输出结果

ArrayList:[Dog,Cat,Horse]修改后的ArrayList:[Dog,Cat,Zebra]

删除ArrayList元素

1.使用 remove() 方法

要从数组列表中删除元素,我们可以使用remove()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("初始ArrayList:"+animals);//从索引2中删除元素Stringstr=animals.remove(2);System.out.println("最终ArrayList:"+animals);System.out.println("删除元素:"+str);}}

输出结果

初始ArrayList:[Dog,Cat,Horse]最终ArrayList:[Dog,Cat]删除元素:Horse

2.使用 removeAll() 方法

要从数组列表中删除所有元素,我们使用removeAll()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在ArrayList中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("初始ArrayList:"+animals);//删除所有元素animals.removeAll(animals);System.out.println("最终ArrayList:"+animals);}}

输出结果

初始ArrayList:[Dog,Cat,Horse]最终ArrayList:[]

3.使用 clear() 方法

我们还可以使用clear()方法从数组列表中删除所有元素。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("InitialArrayList:"+animals);//删除所有元素animals.clear();System.out.println("FinalArrayList:"+animals);}}

输出结果

初始ArrayList:[Dog,Cat,Horse]最终ArrayList:[]

注意:clear()方法比removeAll()方法更高效。

遍历 ArrayList

1.使用 for 循环

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){//创建数组列表ArrayList<String>animals=newArrayList<>();animals.add("Cow");animals.add("Cat");animals.add("Dog");System.out.println("ArrayList:"+animals);//使用for循环System.out.println("访问所有元素:");for(inti=0;i<animals.size();i++){System.out.print(animals.get(i));System.out.print(",");}}}

输出结果

ArrayList:[Cow,Cat,Dog]访问所有元素:Cow,Cat,Dog,

2.使用 forEach 循环

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){//创建数组列表ArrayList<String>animals=newArrayList<>();animals.add("Cow");animals.add("Cat");animals.add("Dog");System.out.println("ArrayList:"+animals);//使用forEach循环System.out.println("访问所有元素:");for(Stringanimal:animals){System.out.print(animal);System.out.print(",");}}}

输出结果

ArrayList:[Cow,Cat,Dog]访问所有元素:Cow,Cat,Dog,

在两个示例中,我们都使用循环访问了数组列表的各个元素。

获取ArrayList的长度

要获取数组列表的长度,我们使用size()方法。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在arrayList中添加元素animals.add("Dog");animals.add("Horse");animals.add("Cat");System.out.println("ArrayList:"+animals);//获取arrayList的大小System.out.println("arrayList的大小:"+animals.size());}}

输出结果

ArrayList:[Dog,Horse,Cat]arrayList的大小:3

对ArrayList的元素进行排序

要对数组列表的元素进行排序,我们使用Collections类的sort()方法。为了使用它,我们必须先导入java.util.Collections包。

默认情况下,排序以字母或数字升序进行。例如,

importjava.util.ArrayList;importjava.util.Collections;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Horse");animals.add("Zebra");animals.add("Dog");animals.add("Cat");System.out.println("未排序的ArrayList:"+animals);//对数组列表进行排序Collections.sort(animals);System.out.println("排序后的ArrayList:"+animals);}}

输出结果

未排序的ArrayList:[Horse,Zebra,Dog,Cat]排序后的ArrayList:[Cat,Dog,Horse,Zebra]

要了解有关对数组列表进行排序的更多信息,请访问Java ArrayList sort。

Java ArrayList 转换为 数组

在Java中,我们可以使用toArray()方法将数组列表转换为数组。例如,

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在数组列表中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("ArrayList:"+animals);//创建一个新的String类型数组String[]arr=newString[animals.size()];//将ArrayList转换成数组animals.toArray(arr);System.out.print("Array:");for(Stringitem:arr){System.out.print(item+",");}}}

输出结果

ArrayList:[Dog,Cat,Horse]Array:Dog,Cat,Horse,

Java Array 转换为 ArrayList

我们还可以将数组转换为数组列表。为此,我们可以使用Arrays类的asList()方法。

要使用asList(),我们必须先导入java.util.Arrays包。例如,

importjava.util.ArrayList;importjava.util.Arrays;classMain{publicstaticvoidmain(String[]args){//创建一个字符串类型的数组String[]arr={"Dog","Cat","Horse"};System.out.print("Array:");//打印数组for(Stringstr:arr){System.out.print(str);System.out.print("");}//从数组创建ArrayListArrayList<String>animals=newArrayList<>(Arrays.asList(arr));System.out.println("\nArrayList:"+animals);}}

输出结果

Array:Dog,Cat,HorseArrayList:[Dog,Cat,Horse]

在上面的程序中,我们首先创建了String类型的数组arr。

然后,我们使用asList()方法将数组转换为数组列表。

Java ArrayList 转换为 字符串

要将数组列表转换为字符串,可以使用toString()方法。例如

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<String>animals=newArrayList<>();//在ArrayList中添加元素animals.add("Dog");animals.add("Cat");animals.add("Horse");System.out.println("ArrayList:"+animals);//将ArrayList转换为字符串Stringstr=animals.toString();System.out.println("String:"+str);}}

输出结果

ArrayList:[Dog,Cat,Horse]String:[Dog,Cat,Horse]

注意: toString()将整个数组列表转换为单个String。

其他 ArrayList 方法

方法内容描述
clone()

创建具有相同元素、大小和容量的新数组列表。

contains()

在数组列表中搜索指定的元素并返回一个布尔值。

ensureCapacity()

指定数组列表可以包含的总元素。

isEmpty()

检查数组列表是否为空。

indexOf()

在数组列表中搜索指定的元素,并返回该元素的索引。

trimToSize()

将数组列表的容量减少到当前大小。

编辑于2024-05-20 11:56