List Set Map 三个接口的区别?
集合定义:集合是指一组相关的元素组成的一个单一的对象。
Java的集合是一种特别有用的工具类,它用于存储数量不等的多个对象,并且可以实现常用的数据结构例如:栈、堆、队列…..Java集合还可以保存具有映射关系的关联数据。
Java的集合分为三大类:List、Set、Map 其中List代表:有序,可重复的集合。Set代表:无序,不可重复的集合。Map代表具有映射关系的集合。
首先:用一张结构图,来区分三者的区别:
可以清晰的看到结构图三者的区别:
List, Set,继承自Collection接口,而Map并没有继承
首先,List与Set具有相似性,它们都是单列元素的集合,
List代表的是有序(元素的添加顺序),可重复的集合。他的常用实现类有:ArrayList、LinkedList。
Set接口代表的是无序(添加顺序),不可重复的集合。常用实现类HashSet
Map是以键值对出现的。它是双列的集合,其中有put方法,定义如下:put(obj key,obj value)
Map集合代表将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map接口中常用实现类为HashMap 、HashTable
存取元素时,各有什么特点?
List除了可以以Iterator接口取得所有的元素,再逐一遍历各个元素之外,还可以调用get(index i)来明确说明取第几个。
Set取元素时,没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。
Map它是双列的集合,其中有put方法,定义如下:put(obj key,obj value),每次存储时,要存储一对key/value,不能存储重复的key,这个重复的规则也是按equals比较相等。取则可以根据key获得相应的value,即get(Object key)返回值为key 所对应的value。