当前位置: 面试刷题>> Java 中有哪些集合类?请简单介绍


在Java中,集合类是一个至关重要的组成部分,它们为开发者提供了一系列高效、灵活且类型安全的方式来组织和管理数据。作为高级程序员,深入理解Java集合框架(Java Collections Framework, JCF)是必备的技能之一。Java集合框架位于`java.util`包中,主要包含两大类:`Collection`接口及其子接口(如`List`、`Set`、`Queue`等)和`Map`接口。下面我将详细介绍这些集合类,并给出示例代码以加深理解。 ### 1. Collection接口 `Collection`是集合类的基础接口,它不直接实例化对象,而是由其子接口实现具体的集合功能。`Collection`接口定义了集合的基本操作,如添加、删除、遍历等。 #### 1.1 List接口 `List`是一个有序的集合,允许元素重复。它继承自`Collection`接口,并增加了许多基于索引的操作,如`get(int index)`、`add(int index, E element)`等。`List`的主要实现类有`ArrayList`、`LinkedList`和`Vector`。 **示例代码**: ```java List list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); list.add("Cherry"); System.out.println(list.get(1)); // 输出 Banana ``` #### 1.2 Set接口 `Set`是一个无序的集合,不允许元素重复。它同样继承自`Collection`接口,但去除了基于索引的操作,因为`Set`不保证元素的顺序。`Set`的主要实现类有`HashSet`、`LinkedHashSet`和`TreeSet`。 **示例代码**: ```java Set set = new HashSet<>(); set.add("Apple"); set.add("Banana"); set.add("Apple"); // 尝试添加重复元素,但不会被添加 System.out.println(set); // 输出可能包含 Apple 和 Banana,但顺序不确定 ``` #### 1.3 Queue接口 `Queue`是一个队列接口,代表了一个先进先出(FIFO)的数据结构。它除了包含`Collection`的基本操作外,还增加了`offer(E e)`、`poll()`、`peek()`等针对队列的特定操作。`Queue`的主要实现类有`LinkedList`(实现了`Deque`接口,从而间接实现了`Queue`接口)和`PriorityQueue`。 **示例代码**: ```java Queue queue = new LinkedList<>(); queue.offer(1); queue.offer(2); System.out.println(queue.poll()); // 输出 1 ``` ### 2. Map接口 `Map`是一种将键映射到值的对象,一个键可以最多映射到最多一个值。`Map`接口不是`Collection`的子接口,但它提供了类似于集合的操作,如添加、删除和遍历。`Map`的主要实现类有`HashMap`、`LinkedHashMap`、`TreeMap`和`Hashtable`。 **示例代码**: ```java Map map = new HashMap<>(); map.put("Apple", 100); map.put("Banana", 200); System.out.println(map.get("Apple")); // 输出 100 // 遍历Map for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` ### 总结 Java集合框架提供了丰富的集合类,它们各自有不同的特性和用途。在实际开发中,选择合适的集合类对于提高程序的性能和可读性至关重要。高级程序员应深入理解这些集合类的内部实现和工作原理,以便在复杂场景下做出最优选择。同时,`码小课`作为学习Java的优质资源,提供了丰富的教程和实战案例,有助于进一步巩固和深化对Java集合框架的理解。
推荐面试题