Java 数据结构
Java 数据结构
数据结构是存储和组织数据以便高效使用数据的一种方式。
数组(array)就是一种数据结构,它允许将多个元素存储在单个变量中。
Java 还包含许多其他数据结构,它们位于java.util 包中。每种数据结构都用于以不同的方式处理数据。
一些最常见的数据结构包括:
ArrayListHashSetHashMap
提示:数据结构就像功能更强大的数组——更加灵活,特性也更加丰富!
我们稍后会详细探讨所有这些数据结构以及更多内容,但现在,先来快速了解一下每一种。
ArrayList
ArrayList 是一个可调整大小的数组,可以根据需要增长。
它允许您存储元素并通过索引访问它们。
示例
// 导入 ArrayList 类 import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> cars = new ArrayList<String>(); cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); System.out.println(cars);}}
HashSet
HashSet 是一个集合,其中每个元素都是唯一的,不允许重复。
示例
// 导入 HashSet 类
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<String> cars = new HashSet<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("BMW"); // Duplicate
cars.add("Mazda");
System.out.println(cars);
}
}
注意:在上面的例子中,尽管 BMW 被添加了两次,但它在集合中只出现一次,因为集合中的每个元素都必须是唯一的。
HashMap
HashMap 存储键值对,这在需要存储值并按键(例如名称或 ID)查找值时非常有用:
示例
// 导入 HashMap 类
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// 创建一个名为 capitalCities 的 HashMap 对象
HashMap<String, String> capitalCities = new HashMap<String, String>();
// Add keys and values (Country, City)
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
数据结构概述
| 数据结构 | 存储 | 是否保持顺序? | 是否允许重复? | 最适合 |
|---|---|---|---|---|
| ArrayList | 元素有序 | 是 | 是 | 可通过索引访问元素 | HashSet | 元素唯一 | 否 | 否 | 避免重复,快速查找 | HashMap | 键值对 | 否 | 是(键唯一) | 按键快速查找 |
迭代器
学习数据结构时,你经常会听到迭代器这个概念。
迭代器是一种遍历数据结构中元素的方法。
之所以称之为"迭代器",是因为"迭代"是循环的技术术语。
示例
将迭代器与 ArrayList 一起使用:
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// 创建一个字符串类型的 ArrayList
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// 获取 ArrayList 的迭代器
Iterator<String> it = cars.iterator();
// 使用迭代器遍历列表
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
接下来,让我们更详细地了解每种数据结构。

