容器随笔
-
1.内部比较器|自然排序
-
要当前比较的类型实现一个借口Comparable接口,重写compareTo方法,方法的内部制定比较规则
-
硬编码习惯,不够灵活,每次修改源代码
-
-
2.外部比较器|自定义排序
-
使用任何一个实现类实现一个接口Comparator,重写compare方法,方法的内部制定比较规则
//自定义排序
class Deom implements Comparator<Person>{
//根据身高做降序排序
-
Map<k,v> 接口
-
键值对类型的数据,Map集合中每一个数据都是一个键值对 k-v组成
-
k-v 映射关系
-
map中的key-> 无序不可重复(唯一) --> Set集合
-
map中 的value-> 无序的,可重复 -->Collection集合
特点:
-
一个key只能对应一个value
-
一个key想要对应多个value时候,可以把多个value存放入一个容器
方法:
-
遍历:
-
1)keySet() 返回所有的key,根据key获取value
-
2)values() 返回所有的value,遍历value
-
3)entrySet() 把map中所有的键值对转为多个Map.Entry类型 的对象,Map.Entry类型就表示一个键值对 ,放入set集合中,可以遍历set,获取每一个Map.Entry
-
调用方法,获取key和 value
-
Set接口的实现类
-
无序 (没有索引,添加的顺序和内部真实存储的顺序) 不可重复
遍历方式:
-
1) foreach
-
2)iterator迭代器
HashSet
-
底层->是由HashMap的key维护的
-
实现结构: 哈希表(数组+链表+红黑树)
-
特点:查询 效率快,增删效率高,但是无序
-
去重: 要重写hashcode和equals方法
TreeSet
-
底层:->是由TreeMap的key维护的
-
实现结构:红黑树
-