2020.12.04,Comparator,Comparable,Map集合

Compartor接口比较器
Comparator接口在java.util下面,排序是Comparator需要实现的功能之一,比较器具有可比性,可以做排序,本质是比较两个对象谁在前,谁在后。
简化版本:o1-o2(升序) o2-o1(降序)
|
Comparator和Comparable接口的区别
Comparator接口
一般是灵活多变的接口,也可以完成Comparable接口的固定,是内部类的时候就是灵活多变,创建实现类,重写compare方法就是可变的,一般是Collections.sort(List list , Compar ator<? super T>(){内部重写compare方法}))
|
Comparable接口
先用类实现Comparable接口,再重写ComparaTo方法,自定义规则,强行对实现他的每个对象降序排序,只能在类中实现ComparaTo一次,
||||||||||||||||||
||||||||||||||||||
||||||||||||||||||
Map集合
1.map是双列数据结构,键值对key和value对应的数据结构
2.Collection存入单个数据,Map集合存入一对数据,每次存一对
3.Map<key,value>key是键,value是值,我们通过键可以找到对应的值。
4.map中键不能重复,一个键只能对应唯一的值,一个值可以对应很多的键。
|
HashMap
存储数据常用哈希表结构,元素存取可能不一致,由于要保证键的唯一性,所以需要重写hashCode和equals方法
|
LinkedHashMap
是HashMap的子类,存储数据是依靠哈希表——链表结构,通过链表保证元素存取一致,通过哈希表保证键唯一,不重复米醋要重写hashCode和equals方法
|
1.public V put(K key, V value); 把指定的键和值添加到Map集合中,返回计入的值
​存储键值对的时候,如果key不重复,返回值是null,如果key重复,那么新的就会覆盖掉以前的,返回的是覆盖前的value值

2.public V remove(object key); 把指定的键所定义的键值对删除,返回删除的值
如果key存在,返回value值,key不存在返回null,一般来说都是用包装类接收,比如null可以赋值给integer,但是null不能赋值给int

3.public V get(Object key); 根据指定的键,返回对应的值
如果key存在,返回对应value值,如果key不存在就返回努力了

4.public Set keySet();获取map集合终所有的key值,存到set集合中
map集合中第一种遍历方式,键找值得方式。
实现步骤:
1,使用map集合中的keySet方法,把map集合终所有的key值存储到set集合中
2.遍历set集合,获取map集合终美哟i个key值
3.通过map.get(),通过key值去找value。

5.public Set<Map.Entry<K,V>> entrySet(); 获取map中所有键值对,存在set集合中,这个存入的是Entry对象,通过entry.getKey()和entry.getValue().
实现步骤:
1.使用entrySet()方法,把map集合中的键值对放到set中
2.遍历set集合得到每一个entry对象
3.使用entry对象,得getKey()和getValue()分别获取马屁集合中 的键与值
|
HashMap
1.集合底层是哈希表,所以查询很快的
JDK1.8之前:哈希表:数组+链表
JDK1.8之后:哈希表:数组+链表/红黑树(链节超过8)
2.HashMap里面元素无序的哈
|
LinkedHashMap:
1.集合的底层:哈希表+链表
2.是有序的,存取元素顺序一致。

上一篇:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。


下一篇:Java基础(十八)——Comparator比较器、Comparable接口和Map集合