Java集合是常用的数据类型,在此详细分析接口和实现类。整个集合框架就围绕一组标准接口而设计,学习集合框架有助开发实践。
框架体系图
1.Collection 接口
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。Collection 接口存储一组不唯一,无序的对象。
2.List 接口
List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。List 接口存储一组不唯一,有序(插入顺序)的对象。
3.Set
Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。Set 接口存储一组唯一,无序的对象。
4.SortedSet
继承于Set保存有序的集合。
5.Map
Map 接口存储一组键值对象,提供key(键)到value(值)的映射。
6.Map.Entry
描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
7.SortedMap
继承于 Map,使 Key 保持在升序排列。
8.Enumeration
这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。
Set和List的区别:
1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。
3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。
集合初始化设值:
int[] ints = new int[] {1, 2, 3, 4, 5, 6}; Integer[] integers = new Integer[] {1, 2, 3, 4, 5, 6}; List<String> list = new ArrayList<String>() {{ add("abc"); add("def"); }}; Map<String, Object> map = new HashMap<String, Object>() {{ put("abc", "def"); put("", ""); }}; Set<String> set = new HashSet<String>() {{ add("abc"); add("def"); }}; Queue<String> queue = new LinkedBlockingQueue<String>() {{ add("abc"); add("def"); }};
备注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/ https://blog.csdn.net/Z645817
严正声明:
1.由于本博客部分资源来自互联网,版权均归原作者所有。转载的目的是用于学术交流与讨论学习,将不对任何资源负法律责任。
2.若无意中侵犯到您的版权利益,请来信联系我,我会在收到信息后会尽快给予处理!
3.所有资源内容仅供学习交流之用,请勿用作商业用途,谢谢。
4.如有转发请注明出处,来源于http://www.cnblogs.com/zengming/ https://blog.csdn.net/Z645817,谢谢合作。
原文地址:https://www.cnblogs.com/zengming/p/9413029.html