今天爱分享给大家带来List、Map、Set 三个接口,存取元素时,各有什么特点?【面试题详解】,希望能够帮助到大家。
【参考答案】
首先,List 与 Set 具有相似性,它们都是单列元素的集合,所以,它们有一个功共同
的父接口 Collection 接口。Set 里面不允许有重复的元素,即不能有两个相等的对象 。
List 表示有先后顺序的集合, 当我们多次调用 add(Obj e)方法时,每次加入的对象就
像火车站买票有排队顺序一样,按先来后到的顺序排序。
Map 与 List 和 Set 不同,它是双列的集合每次存储时,要存储一对 key/value,不能存
储重复的 key,这个重复的规则也是按 equals 比较相等。取则可以根据 key 获得相应的
value,即 get(Object key)返回值为 key 所对应的 value。另外,也可以获得所有的 key
的结合。
【分析】
总结:List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。
Map 保存 key-value 值,value 可多值。上面是大致不同,另外上述 3 个只是接口,而具体
实现类中,用法大同小异,只是实现的数据结构不同,例如 List 接口下的 LinkedList 主要
实现了双链表的存储特点,Vector 是线程安全的集合类。