A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 子弹滞销 初级黑马   /  2018-11-15 10:28  /  1064 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set 。其中, List 的特点是:1.元素有序 2.有索引 3.元素可重复。 Set 的特点是:1.元素无序(存入和取出的顺序) 2.无索引 3.元素不可重复。
List 接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList以及java.util.Vector , Set 接口 的主要实现类有 java.util.HashSet 和 java.util.TreeSet 以及java.util.LinkedHashSet(HashSet的子类).
ArrayList底层为数组,查询和修改快,增删慢(会改变原来的结构,所以慢)
LinkdeList底层为链表,查询和修改慢,增删快(不会改变以前的结构)
Vector底层也为数组,已逐渐被ArrayList替代
HashSet的底层为Hash表,,哈希表是由数组+链表+红黑树实现,速度是Collection集合中最快的(综合),存入自定义类,该类需重写hashCode方法和equals方法,否则无法去除重复元素.
LinkedHashSet为HashSet的子类,在Hash表的基础上添加了链表排序,也是set集合中唯一一个有序集合,但同样因为链表排序的缘故,大大降低了查询速度
TreeSet底层为红黑树,是一个排序集合(存入的元素会自动排序(自然排序),依赖于Comparable接口的CompareTo方法,存入自定义类时,需要自定义类实现Comparable接口,重写CompareTo方法,否则无法排序,也无法去除重复元素,即不知道排序规则)

Map 中的集合称为双列集合: Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。子类常用的有HashMap集合、LinkedHashMap集合和TreeMap
HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
TreeMap:属性和TreeSet相似,区别在于TreeSet为双列集合,即元素由键值对组成.


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马