Java 集合框架(Java Collections Framework)是一套性能优良、使用方便的接口及其实现,它在 java.util 包中,主要包括以下几种接口和类以及它们的特点:
### 主要接口
1. **Collection 接口**:是最基本的集合接口,它包含在 java.util 包中。Collection 接口有两个主要的子接口:List 和 Set。
- **List 接口**:允许重复的元素,能够精确控制每个元素插入的位置。用户可以通过索引(元素在List中的位置,类似于数组下标)来访问元素。主要实现类有 ArrayList、LinkedList 和 Vector。
- **Set 接口**:不允许重复的元素。它主要有两个实现:HashSet 和 TreeSet。
2. **Map 接口**:不是 Collection 接口的子接口,但它是集合框架的一部分。Map 存储键值对(key-value pairs)。每个键映射到一个值。主要的实现类有 HashMap、TreeMap 和 LinkedHashMap。### 主要实现类
1. **ArrayList**:基于动态数组的实现,允许对元素进行快速的随机访问。但是,从ArrayList的中间位置添加或删除元素比较慢,因为需要移动元素。
2. **LinkedList**:基于链表的实现,允许对集合中的元素进行高效的插入、删除操作,但随机访问速度较慢。
3. **HashSet**:基于哈希表实现,是一种不允许有重复元素的集合,没有保证元素的顺序。
4. **TreeSet**:基于红黑树实现,是一个有序的不允许有重复元素的集合,根据元素的自然顺序或者构造时指定的Comparator进行排序。
5. **HashMap**:基于哈希表的 Map 接口的实现。存储键值对,允许使用 null 值和 null 键。不保证映射的顺序。
6. **TreeMap**:基于红黑树的 NavigableMap 实现。按照键的自然排序或者构造时提供的 Comparator 进行排序,不允许键为 null。
7. **LinkedHashMap**:类似于 HashMap,但是它维护着一个运行于所有条目的双向链表。此链接列表定义了迭代顺序,通常是插入顺序或者访问顺序。
8. **Vector**:与 ArrayList 类似,但它是线程安全的。因此,它在单线程环境中比 ArrayList 慢。
9. **Stack**:继承自 Vector,实现了一个后进先出的栈。
### 特殊类和接口
- **Iterator**:迭代器,用于遍历集合中的元素。
- **ListIterator**:扩展了 Iterator 接口,允许双向遍历列表并修改元素。
- **Comparable** 和 **Comparator**:用于定义对象的自然排序或定制排序逻辑。Java 集合框架通过提供这些接口和类,极大地简化了集合的操作,提高了开发效率和程序运行效率。
两个集合包含 java工具类
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:java word文档最上层图层
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
JAVA 两个类同时实现同一个接口
JAVA 两个类同时实现同一个接口
System 默认方法 静态方法 -
Java 两个集合元素是否包含
&nbs
Java 两个集合元素是否包含 List Java 子类