1.Map接口的子类有什么特点,谈谈你所了解的Map实现类?
特点是存储键值对,键值对一一对应,键不可重复,值可以重复
? 有hashmap和treemap两个实现类
? hashmap底层是哈希表,无序,可存储null,但是键也需遵循唯一性,子类linkhashmap有序
? treeMap底层是红黑树,使用泛型中类的自然顺序来排序,也可使用Comparator比较器进行排序,建议使用比较
? 器,因为比较器将比较规则单独定义,有利于程序维护性
2.目前为止,我们所学的遍历map集合有几种方式?
通过遍历键值对map集合进行遍历(keyset()方法)和通过遍历键值对map集合(entryset()方法)进行遍历.
3.请用自己的语言描述你所了解的集合体系
分为单列集合和双列集合
单列集合的顶层接口是collection(无索引),其下分为set集合和list集合
? list集合特点是有序,有索引值,存储元素可重复,拥有arraylist和linklist两个实现类,
? ArrayList集合底层是数组结构实现,默认长度是10,特点是查询快(有索引值)、增删慢(增删需要创建新的数组
? (超过10以后));
? LinkedList集合底层是链表结构实现,特点是查询慢(每次查询需要从头开始)、增删快(链表结构增删只需改变
? 前后地址值)
? set集合特点是无序,无索引值,存储元素具有唯一性(存储元素的时候会先计算类的哈希值,确定存储位置,存储位置
? 元素为零直接存储,不为零会比较哈希值是否重复,重复则调用equals方法比较对象内容,因此存储元素需重写
? hashcode和equals方法,全部相同则不存储)
? hashset底层是哈希表(数组加链表,长度超过8则为数组加红黑树),子类LinkHashSet有序
? TreeSet集合可以进行自然排序和比较器排序,升序为this-o(传入的参数),降序相反,返回结果整数会顺序排列,负
? 数会倒叙排列,0代表值相同,需要引入次要比较条件
双列集合学到的是map接口,特点是存储键值对,键值对一一对应,键不可重复,值可以重复,有hashmap和treemap两
个实现类
? hashmap底层是哈希表,无序,可存储null,但是键也需遵循唯一性,子类linkhashmap有序
? treeMap底层是红黑树,使用泛型中类的自然顺序来排序,也可使用Comparator比较器进行排序,建议使用比较
? 器,因为比较器将比较规则单独定义,有利于程序维护性
|