
Java中有多种有序集合,平时经常在Java开发都会使用到,下面详解常见的Java有序集合@mikechen
ArrayList
List是有序集合,List常用的有序集合有:ArrayList、LinkedList等,下面一一详解。
ArrayList是Java集合框架中比较常用的Java有序集合,如下图所示:

示例:
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
// 创建一个 ArrayList
List<String> list = new ArrayList<>();
// 添加元素
list.add("banana");
list.add("apple");
list.add("orange");
// 获取元素
System.out.println(list.get(0)); // banana
// 遍历元素
for (String fruit : list) {
System.out.println(fruit);
}
// 删除元素
list.remove("apple");
// 判断是否包含某个元素
System.out.println(list.contains("banana")); // true
// 获取元素个数
System.out.println(list.size()); // 2
// 清空列表
list.clear();
}
}
ArrayList可以按照元素的添加顺序进行访问和遍历。
LinkedList
LinkedList 是 Java 集合中比较常用的数据结构,与 ArrayList 一样,实现了 List 接口,只不过 ArrayList 是基于数组实现的,而 LinkedList 是基于链表实现的。

也可以按照元素的添加顺序进行访问和遍历,但由于其内部实现方式不同,对于插入和删除操作的效率更高。
SortedSet
在Java中除了List有序集合,还有就是SortedSet有序集合。
SortedSet是一个按照自然顺序(natural ordering)或者指定的比较器(comparator)进行排序的集合。
常见的实现类有:TreeSet和ConcurrentSkipListSet,其中TreeSet是基于红黑树(Red-Black Tree)实现的,而ConcurrentSkipListSet是基于跳表(Skip List)实现的。
TreeSet
下面是一个使用TreeSet的例子,按照字符串长度进行排序:
示例:
SortedSet<String> stringSet = new TreeSet<>(Comparator.comparingInt(String::length));
stringSet.add("apple");
stringSet.add("banana");
stringSet.add("orange");
这会将stringSet按照字符串长度升序排列。
以上就是常见的Java有序集合详解,更多Java集合,请查看:Java集合(万字图文全面详解)
mikechen睿哥
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。