今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口有什么特点,谈谈你所了解的Map实现类?
Map是双列的,存储的键值对形式的元素,键与值一一对应,键唯一,值可重复,
底层的数据结构只针对键有效,与值无关。
HashMap 底层是哈希表 由对象的hashcode()和equals()方法保证键的唯一性
TreeMap 底层是红黑树 由自然排序或者比较器排序保证键的唯一性
2.目前为止,我们所学的遍历map集合有几种方式?
两种方式:
A:键找值
a:获取所有键的集合
b:遍历键的集合,得到每一个键
c:根据键到集合中去找值
B:键值对对象找键和值
a:获取所有的键值对对象的集合
b:遍历键值对对象的集合,获取每一个键值对对象
c:根据键值对对象去获取键和值
3.请用自己的语言描述你所了解的集合体系
集合有单列 Collection 和双列 Map
Collection ----||
|| list --------------||ArrayList
有索引,有序,可重复 底层是数组,查询快,增删慢,
线程非同步,效率高
|| LinkedList
底层是链表,查询慢,增删快
线程非同步,效率高
|| set ---------------|| HashSet
无索引,无序,唯一 底层是哈希表 保证元素的唯一性
---------------|| LinkedHashSet
特性:元素存取有序
|| TreeSet
底层是红黑树,由自然排序或指定的比较器保证唯一性
Map ----------|| HashMap
存取无序,底层是哈希表,通过重写对象的hashcode()和equals()方法保证键的唯一性。
如果键已存在,再添加相同的键,则是修改该键对应的值。
---------------|| LinkedHashMap
特性:元素存取有序
|| TreeMap
底层是红黑树,由键的自然排序或指定的比较器保证键的唯一性并按指定的规则排序。 |