Java 中的有序集合

作者:编程家 分类: java 时间:2025-09-12

Java 中的有序集合是一种数据结构,它可以存储一组元素,并按照特定的顺序进行排序。有序集合在很多实际应用中都非常有用,比如需要按照字母顺序排序的联系人列表,或者需要按照价格从低到高排序的商品列表等。

Java 提供了多种有序集合的实现,其中最常用的是 TreeSet 和 TreeMap。这两个类都实现了 SortedSet 和 SortedMap 接口,可以确保集合中的元素按照指定的顺序进行排序。

使用 TreeSet

TreeSet 是基于红黑树的实现,它可以保持元素的自然顺序。如果要将自定义对象存储在 TreeSet 中,需要实现 Comparable 接口,并重写 compareTo 方法来指定对象的比较规则。下面是一个简单的例子,演示如何使用 TreeSet 存储整数并按照从小到大的顺序输出:

java

import java.util.TreeSet;

public class TreeSetExample {

public static void main(String[] args) {

TreeSet numbers = new TreeSet<>();

numbers.add(5);

numbers.add(2);

numbers.add(8);

numbers.add(1);

numbers.add(3);

for (int number : numbers) {

System.out.println(number);

}

}

}

输出结果为:

1

2

3

5

8

使用 TreeMap

TreeMap 是基于红黑树的实现,可以保持键值对的自然顺序。与 TreeSet 类似,如果要将自定义对象存储在 TreeMap 中,需要实现 Comparable 接口,并重写 compareTo 方法来指定键的比较规则。下面是一个简单的例子,演示如何使用 TreeMap 存储学生的成绩并按照学生姓名的字母顺序输出:

java

import java.util.TreeMap;

public class TreeMapExample {

public static void main(String[] args) {

TreeMap scores = new TreeMap<>();

scores.put("Alice", 85.5);

scores.put("Bob", 92.0);

scores.put("Charlie", 78.3);

scores.put("David", 91.2);

scores.put("Eva", 88.7);

for (String name : scores.keySet()) {

System.out.println(name + ": " + scores.get(name));

}

}

}

输出结果为:

Alice: 85.5

Bob: 92.0

Charlie: 78.3

David: 91.2

Eva: 88.7

有序集合是 Java 中非常有用的数据结构,可以方便地存储和排序一组元素。通过使用 TreeSet 和 TreeMap,我们可以实现按照自然顺序来排序元素,并且还可以自定义比较规则。无论是存储整数、字符串还是自定义对象,有序集合都能很好地满足我们的需求。