List,Set和Map的特征

List,Set和Map都是一种集合,但是List和Set都是继承Collection接口,而Map不是继承Collection接口。

List能够实现两个子接口,分别是ArrayList和LinkedList,ArrayList的特征是:get和set调用花费常数时间,但是在新项的插入和现有项的删除代价昂贵,除非是在末端执行。LinkedList的特征则恰恰相反:对新项的插入和现有项的删除开销很小,但是对get和set的调用昂贵。

Set接口能够实现三个子接口,分别是HashSet,TreeSet和LinkedHashSet。在这三个接口里面,HashSet的速度是最快的,但是没有明显的顺序保存元素,并且集合元素可以是null,但又只能放入一个null。TreeSet虽然速度没有HashSet的快,但是它可以按照编辑结果升序用来保存对象;而LinkedHashSet则是能够按照被添加的顺序保存对象。

Map接口同样能够实现三个子接口,分别是HashMap,TreeMap,LinkedHashMap。HashMap提供了最快的访问技术,但是却没有明显的顺序保存元素,它的元素是无序的;而TreeMap虽然没有提供最快的访问技术,但是它的保存是按照比较结果的升序以此来保存键值的;LinkedHashMap不但保留了HashMap的查询速度,还能够按照插入顺序以此保存键值。

LIst的特征:List是一个有序的容器,插入的顺序和输出的顺序是一致的,而且是可以允许拥有多个重复的元素和null元素。

Set的特征:Set是一个无序容器,它不可以出现重复元素,一旦出现则覆盖前面的元素,允许null元素,但是只能允许一个null元素。

Map的特征:Map是一个无序容器,它的存储方式是键值对存储,它的键值必须唯一,而且只能允许只有一个null值,但是它的值是可以重复,并且是可以允许多个null元素。

你可能感兴趣的:(集合)