📜  Java列表(1)

📅  最后修改于: 2023-12-03 15:16:34.795000             🧑  作者: Mango

Java 列表

1. 什么是列表?

列表是一种数据结构,用于存储一系列数据。Java 中的列表实现了 java.util.List 接口,提供了对列表的基本操作和功能。

2. 常见的列表实现类
2.1 ArrayList

ArrayList 是一种可变数组,它允许在其内部存储任意类型的对象。可以通过下标来访问列表中的元素,也可以在列表的末尾添加或移除元素。

// 创建一个 ArrayList
List<String> list = new ArrayList<>();

// 添加元素
list.add("Java");
list.add("Python");

// 访问元素
String firstElement = list.get(0);

// 移除元素
list.remove("Python");
2.2 LinkedList

LinkedList 是一种双向链表,也允许在其内部存储任意类型的对象。与 ArrayList 不同的是,LinkedList 的插入和删除操作更加高效。

// 创建一个 LinkedList
List<Integer> list = new LinkedList<>();

// 添加元素
list.add(1);
list.add(2);

// 访问元素
int firstElement = list.get(0);

// 移除元素
list.remove(1);
2.3 Vector

Vector 是一种与 ArrayList 类似的可变数组,但它是线程安全的。不过由于其同步操作的开销,Vector 的性能一般不如 ArrayList

// 创建一个 Vector
List<Double> list = new Vector<>();

// 添加元素
list.add(3.14);
list.add(1.414);

// 访问元素
double firstElement = list.get(0);

// 移除元素
list.remove(1);
2.4 Stack

Stack 是一种后进先出(LIFO)的堆栈,它继承自 VectorStack 主要用于存储需要后进先出的数据,比如表达式求值。

// 创建一个 Stack
Stack<Character> stack = new Stack<>();

// 添加元素
stack.push('a');
stack.push('b');

// 访问元素(注意不是 get 方法)
char topElement = stack.peek();

// 移除元素
char poppedElement = stack.pop();
3. 列表的常用方法
3.1 添加和访问元素

在列表末尾添加一个元素:

List<String> list = new ArrayList<>();
list.add("Java");

在指定位置插入一个元素:

List<String> list = new ArrayList<>();
list.add(0, "Java");

访问指定位置的元素:

List<String> list = new ArrayList<>();
list.add("Java");
String element = list.get(0);
3.2 移除元素

通过元素值来移除一个元素:

List<String> list = new ArrayList<>();
list.add("Java");
list.remove("Java");

通过下标来移除一个元素:

List<String> list = new ArrayList<>();
list.add("Java");
list.remove(0);
3.3 修改元素

通过下标来修改一个元素:

List<String> list = new ArrayList<>();
list.add("Java");
list.set(0, "Python");
3.4 遍历列表

使用 for 循环遍历:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");

for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

使用 for-each 循环遍历:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");

for (String str : list) {
    System.out.println(str);
}

使用迭代器遍历:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}
4. 总结

Java 列表提供了多种实现类,分别适用于不同的应用场合。对于大部分情况,使用 ArrayList 是最好的选择。列表是 Java 编程中经常用到的数据结构,掌握列表的使用和常用方法对于写出高效、优雅的 Java 代码非常重要。