📅  最后修改于: 2023-12-03 15:16:34.795000             🧑  作者: Mango
列表是一种数据结构,用于存储一系列数据。Java 中的列表实现了 java.util.List
接口,提供了对列表的基本操作和功能。
ArrayList
是一种可变数组,它允许在其内部存储任意类型的对象。可以通过下标来访问列表中的元素,也可以在列表的末尾添加或移除元素。
// 创建一个 ArrayList
List<String> list = new ArrayList<>();
// 添加元素
list.add("Java");
list.add("Python");
// 访问元素
String firstElement = list.get(0);
// 移除元素
list.remove("Python");
LinkedList
是一种双向链表,也允许在其内部存储任意类型的对象。与 ArrayList
不同的是,LinkedList
的插入和删除操作更加高效。
// 创建一个 LinkedList
List<Integer> list = new LinkedList<>();
// 添加元素
list.add(1);
list.add(2);
// 访问元素
int firstElement = list.get(0);
// 移除元素
list.remove(1);
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);
Stack
是一种后进先出(LIFO)的堆栈,它继承自 Vector
。Stack
主要用于存储需要后进先出的数据,比如表达式求值。
// 创建一个 Stack
Stack<Character> stack = new Stack<>();
// 添加元素
stack.push('a');
stack.push('b');
// 访问元素(注意不是 get 方法)
char topElement = stack.peek();
// 移除元素
char poppedElement = stack.pop();
在列表末尾添加一个元素:
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);
通过元素值来移除一个元素:
List<String> list = new ArrayList<>();
list.add("Java");
list.remove("Java");
通过下标来移除一个元素:
List<String> list = new ArrayList<>();
list.add("Java");
list.remove(0);
通过下标来修改一个元素:
List<String> list = new ArrayList<>();
list.add("Java");
list.set(0, "Python");
使用 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());
}
Java 列表提供了多种实现类,分别适用于不同的应用场合。对于大部分情况,使用 ArrayList
是最好的选择。列表是 Java 编程中经常用到的数据结构,掌握列表的使用和常用方法对于写出高效、优雅的 Java 代码非常重要。