📜  Java集合接口(1)

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

Java集合接口

Java集合接口是Java平台中非常常见和使用的核心类库之一,是用于存储和操作对象的容器类。Java集合接口有很多实现类,比如List、Set、Queue、Map等等,每种实现类都有其特定的功能和特性。

List

List是一种有序的集合,元素可以重复。List有两种主要实现类:ArrayList和LinkedList。

  • ArrayList: 底层实现为动态数组,支持快速随机访问,添加和删除操作性能较佳,但对于频繁插入和删除操作性能较差。
  • LinkedList: 底层实现为链表,对于插入和删除操作性能较佳,但对于随机访问操作较差。
List<String> list = new ArrayList<>(); // 创建ArrayList对象
list.add("Java");
list.add("Python");
list.add("C++");
System.out.println(list.get(0)); // 输出Java,随机访问
list.remove("Python"); // 删除Python元素
Set

Set是一种不允许重复元素的集合,实现类包括HashSet、LinkedHashSet和TreeSet。

  • HashSet: 底层实现为哈希表,无序,添加和删除操作性能较佳,但对于查询操作性能略低。
  • LinkedHashSet: 底层实现为哈希表和双向链表,元素按照插入顺序排序,对于查询操作略低,但可保证迭代顺序。
  • TreeSet: 底层实现为红黑树,元素升序排列,支持基于自然顺序或自定义顺序的排序,对于添加和删除操作性能较低,但查询操作性能较高。
Set<String> set = new TreeSet<>(); // 创建TreeSet对象
set.add("Java");
set.add("Python");
set.add("C++");
set.add("Java"); // Java已存在,操作无效
System.out.println(set.size()); // 输出3
set.remove("Python"); // 删除Python元素
Queue

Queue是一种先进先出(FIFO)的队列,实现类包括LinkedList和ArrayDeque。

  • LinkedList: 同List实现类,底层实现为链表,支持添加、删除、查询、插入等操作。
  • ArrayDeque: 底层实现为循环数组,支持两端添加、删除操作,性能优于LinkedList。
Queue<String> queue = new LinkedList<>(); // 创建LinkedList对象
queue.offer("Java");
queue.offer("Python");
queue.offer("C++");
System.out.println(queue.peek()); // 输出Java
queue.poll(); // 移除Java元素
Map

Map是一种以键值对形式存储数据的集合,每个键对应唯一的值。Map的实现类包括HashMap、LinkedHashMap和TreeMap。

  • HashMap: 底层实现为哈希表,无序,适用于大量数据的添加、查询、删除操作,但迭代顺序不确定。
  • LinkedHashMap: 底层实现为哈希表和双向链表,元素按照插入顺序排序,适用于需要保证元素迭代顺序的场景。
  • TreeMap: 底层实现为红黑树,元素按照升序排列,要求键具有可比性,适用于需要对键进行升序排序的场景。
Map<String, Integer> map = new HashMap<>(); // 创建HashMap对象
map.put("Java", 90);
map.put("Python", 80);
map.put("C++", 85);
System.out.println(map.get("Java")); // 输出90
map.remove("Python"); // 删除Python键值对
总结

Java集合接口提供了丰富的容器类实现,可以根据不同的场景和需求选择合适的实现类。熟练掌握Java集合接口及其实现类可以提高编程效率和代码质量。