Java 集合框架ArrayList
原文:https://www.studytonight.com/java/arraylist-in-collection-framework.php
此类提供基于数组的数据结构的实现,该数据结构用于以线性顺序存储元素。这个类实现了列表接口和一个抽象的AbstractList
类。它创建了一个基于元素强度增长的动态数组。
Java ArrayList
类声明
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
- ArrayList 支持动态数组,可以根据需要增长。
- 它可以包含重复元素,并且还保持插入顺序。
- 操作很慢,因为如果从
ArrayList
中删除任何元素,都需要进行大量的移位。 ArrayList
不同步。- ArrayList 允许随机访问,因为它基于索引工作。
ArrayList
构造器
Arraylist 类有三个构造器,可用于从空集合或其他集合的元素创建 ArrayList。
ArrayList() // It creates an empty ArrayList
ArrayList( Collection C ) // It creates an ArrayList that is initialized with elements of the Collection C
ArrayList( int capacity ) // It creates an ArrayList that has the specified initial capacity
示例:创建ArrayList
让我们创建一个ArrayList
来存储字符串元素。这里的列表是空的,因为我们没有添加元素。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating an ArrayList
ArrayList< String> fruits = new ArrayList< String>();
// Displaying Arraylist
System.out.println(fruits);
}
}
[]
ArrayList
方法
下表包含ArrayList
的方法。我们可以用它们来操纵它的元素。
| 方法 | 描述 |
| 无效添加(整数索引,E 元素) | 它在列表的指定位置插入指定的元素。 |
| boolean add(E) | 它在列表的末尾追加指定的元素。 |
| 布尔地址(集合 extends E> c) | 它将指定集合中的所有元素追加到该列表的末尾。 |
| 布尔地址(整数索引,集合 extends E> c) | 它从列表的指定位置开始,追加指定集合中的所有元素。 |
| 清空() | 它将从该列表中移除所有元素。 |
| 无效保证容量(整数要求容量) | 它增强了ArrayList
实例的容量。 |
| E get(整数索引) | 它从列表的特定位置获取元素。 |
| boolean isEmpty() | 如果列表为空,则返回 true,否则返回 false。 |
| int lastIndexOf(Object o) | 它返回指定元素在此列表中最后一次出现的索引,如果列表不包含此元素,则返回-1。 |
| object[]toaarray() | 它返回一个数组,该数组以正确的顺序包含列表中的所有元素。 |
| ArrayList
的浅拷贝。 |
| 布尔包含(对象 0) | 如果列表包含指定的元素,则返回 true |
| int indexOf(Object o) | 它返回指定元素在列表中第一次出现的索引,如果列表不包含该元素,则返回-1。 |
| e 移除(整数索引) | 它移除列表中指定位置的元素。 |
| 布尔删除(对象 0) | 它移除指定元素的第一个匹配项。 |
| 布尔移除所有(集合> c) | 它从列表中移除所有元素。 |
| 布尔移除 If(谓词 super E>过滤器) | 它从列表中移除满足给定谓词的所有元素。 |
| protected void remove range(int from index,int toIndex) | 它会移除给定范围内的所有元素。 |
| void replace all(unaryooperatorArrayList
实例的容量调整为列表的当前大小。 |
向ArrayList
添加元素
要将元素添加到ArrayList
中,我们使用 add()方法。它按照插入顺序将元素添加到列表中。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating an ArrayList
ArrayList< String> fruits = new ArrayList< String>();
// Adding elements to ArrayList
fruits.add("Mango");
fruits.add("Apple");
fruits.add("Berry");
// Displaying ArrayList
System.out.println(fruits);
}
}
[芒果、苹果、浆果]
移除元素
为了从列表中移除元素,我们使用移除指定元素的移除方法。我们还可以传递索引值来移除其中的元素。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating an ArrayList
ArrayList< String> fruits = new ArrayList< String>();
// Adding elements to ArrayList
fruits.add("Mango");
fruits.add("Apple");
fruits.add("Berry");
fruits.add("Orange");
// Displaying ArrayList
System.out.println(fruits);
// Removing Elements
fruits.remove("Apple");
System.out.println("After Deleting Elements: \n"+fruits);
// Removing Second Element
fruits.remove(1);
System.out.println("After Deleting Elements: \n"+fruits);
}
}
【芒果、苹果、浆果、橙子】删除元素后:【芒果、浆果、橙子】删除元素后:【芒果、橙子】
遍历ArrayList
的元素
因为ArrayList
是一个集合,所以我们可以使用循环来迭代它的元素。在这个例子中,我们正在遍历元素。见下面的例子。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating an ArrayList
ArrayList< String> fruits = new ArrayList< String>();
// Adding elements to ArrayList
fruits.add("Mango");
fruits.add("Apple");
fruits.add("Berry");
fruits.add("Orange");
// Traversing ArrayList
for(String element : fruits) {
System.out.println(element);
}
}
}
芒果苹果浆果橙
获取ArrayList
的大小
有时我们想知道ArrayList
包含的元素数量。在这种情况下,我们使用 size()然后返回ArrayList
的大小,该大小等于列表中存在的元素数量。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating an ArrayList
ArrayList< String> fruits = new ArrayList< String>();
// Adding elements to ArrayList
fruits.add("Mango");
fruits.add("Apple");
fruits.add("Berry");
fruits.add("Orange");
// Traversing ArrayList
for(String element : fruits) {
System.out.println(element);
}
System.out.println("Total Elements: "+fruits.size());
}
}
芒果苹果浆果橙子总元素:4
排序ArrayList
元素
为了对ArrayList
的元素进行排序,Java 提供了一个名为 Collections 的类,该类包含一个静态排序方法()。在这个例子中,我们使用排序方法对元素进行排序。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating an ArrayList
ArrayList< String> fruits = new ArrayList< String>();
// Adding elements to ArrayList
fruits.add("Mango");
fruits.add("Apple");
fruits.add("Berry");
fruits.add("Orange");
// Sorting elements
Collections.sort(fruits);
// Traversing ArrayList
for(String element : fruits) {
System.out.println(element);
}
}
}
苹果浆果芒果橙