面试题-------------容器-集合类-- set list map

集合类存放于java.util包中。

集合与数组的区别:
      数组:可以存储对象,也可以存储基本数据类型,但是一次只能存储一种类型,数组长度固定。

集合:只能存储对象,长度可变,可以存储不同类型的对象。

集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。

集合类型主要有3种:set(集)list(列表)map(映射)

set、list接口是 Collection的子接口
map 接口对应啥?你猜。

set(集): 无序容器,不允许重复

list(列表): 有顺序的,并且值允许重复

map(映射): 存键值对,无序的,它的键是不允许重复的,但是值是允许重复的

List接口有三个实现类

1.1 LinkedList
基于链表实现,链表内存是散列的,增删快,查找慢;
1.2 ArrayList
基于数组实现,非线程安全,效率高,增删慢,查找快;
1.3 Vector
基于数组实现,线程安全,效率低,增删慢,查找慢;

Map接口有四个实现类:
2.1 HashMap
基于 hash 表的 Map 接口实现,非线程安全,高效,支持 null 值和 null
键;
2.2 HashTable
线程安全,低效,不支持 null 值和 null 键;
2.3 LinkedHashMap
是 HashMap 的一个子类,保存了记录的插入顺序;
2.4 SortMap 接口
TreeMap,能够把它保存的记录根据键排序,默认是键值的升序排序

Set接口有两个实现类:
3.1 HashSet
底层是由 Hash Map 实现,不允许集合中有重复的值,使用该方式时需要重写 equals()和 hash Code()方法;
3.2 LinkedHashSet
继承于 HashSet,同时又基于 LinkedHashMap 来进行实现,底层使用的是 LinkedHashMap

详细:https://blog.csdn.net/yangxingpa/article/details/81023138?utm_source=copy

百度:https://baike.baidu.com/item/java%E9%9B%86%E5%90%88%E7%B1%BB/4758922?fr=aladdin

猜你喜欢

转载自blog.csdn.net/m0_37702839/article/details/83115648