盐城微网站建设,洛阳有没有做家教的网站,手机百度经验首页登录官网,施工企业部门目标责任书Java知识点总结#xff1a;想看的可以从这里进入 目录8.3、map结构8.3.1、 map接口8.3.2、HashMap8.3.3、LinkedHashMap8.3.4、TreeMap8.3、map结构
8.3.1、 map接口
map的集合是以键值对的形式存在的 (key-value)#xff0c;每个键只能对应一个值#xff0c;通常通过键去… Java知识点总结想看的可以从这里进入 目录8.3、map结构8.3.1、 map接口8.3.2、HashMap8.3.3、LinkedHashMap8.3.4、TreeMap8.3、map结构
8.3.1、 map接口
map的集合是以键值对的形式存在的 (key-value)每个键只能对应一个值通常通过键去查找值所以键是唯一的不可重复而值则没有限制键和值可以是任何引用类型的数据但是键最常用的是String类型 方法
1、int size()返回map中key-value对的个数
2、boolean isEmpty()判断当前map是否为空
3、boolean containsKey(Object key)判断一个键是否存在boolean containsValue(Object value)判断一个值是否存在
4、V get(Object key)根据key获取值
5、V put(key,value)添加一个键值对元素(如果该键已存在则更改其value值)void putAll(map2)将map2中的所有键值添加
6、V remove(Object key)根据键移除一个键值对元素
7、void clear()清空
8、SetK keySet()将所有的键放到set集合中
9、CollectionV values()将值放到Collection集合中
10、SetMap.EntryK, V entrySet()返回map中键值的映射集合到set中keyvalue形式
11、int hashCode()返回哈希吗
12、boolean equals(Object o)当哈希码相同的时候使用equals判断8.3.2、HashMap
HashMap链接
8.3.3、LinkedHashMap
LinkedHashMap 是 HashMap 的子类它在HashMap的基础上增加了双向链表的结构可以通过双向链表记录数据的插入顺序与LinkedHashSet类似LinkedHashMap 可以维护 Map 的迭代顺序迭代顺序与 Key-Value 对的插入顺序一致。他对HashMap中的一些方法进行了重写让所有对底层HashMap数据结构修改的同时也对该链表进行修改遍历的时候便是遍历这一条有序的链表。主要是在HashMap方法的基础上添加了一些双向链表的操作其他的特性基本没有更改 在LinkedHashMap 中有一个属性 accessOrder它控制LinkedHashMap的排序方式如果它为false时是按照插入顺序来排序的但是设置了accessOrder true 时则在调用get()方法时会因为 if(accessOrder true ) 而调用afterNodeAccess方法来调整顺序。基于get()在accessOrder为true时会将访问到的元素放到链表的最后的特性可以使用LinkedHashMap实现LRU缓存。 8.3.4、TreeMap
基于红黑树Red-Black tree的 NavigableMap 实现该映射根据其键的自然顺序进行排序或者根据创建映射时提供的 Comparator 进行排序具体取决于使用的构造方法。它可以保证所有的 Key-Value 对处于有序状态。
TreeMap判断两个key相等的标准两个key通过compareTo()方法或者compare()方法返回0。
同样它排序也是依据Comparable 和 Comparator 实现的
自然排序TreeMap 的所有的 Key 必须实现 Comparable 接口而且所有的 Key 应该是同一个类的对象否则将会抛出 ClasssCastException定制排序创建 TreeMap 时传入一个 Comparator 对象该对象负责对TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现Comparable 接口
使用其键的自然顺序构造一个新的空树图。插入所有键都必须实现Comparable接口
public TreeMap() {comparator null;
}造一个新的空树图根据给定的比较器排序。插入映射中的所有键必须由给定的比较器相互比较
public TreeMap(Comparator? super K comparator) {this.comparator comparator;
}构造一个新的树映射包含与给定映射相同的映射根据其键的自然顺序排序。插入到新映射中的所有键都必须实现Comparable接口。
public TreeMap(Map? extends K, ? extends V m) {comparator null;putAll(m);
}构造一个包含相同映射并使用与指定排序映射相同顺序的新树映射。该方法以线性时间运行。
public TreeMap(SortedMapK, ? extends V m) {comparator m.comparator();try {buildFromSorted(m.size(), m.entrySet().iterator(), null, null);} catch (java.io.IOException | ClassNotFoundException cannotHappen) {}
}1、int size()返回此映射中键值映射的数量。
2、boolean containsKey(Object key)判断key是否存在boolean containsValue(Object value)判断值是否存在
3、V get(Object key)根据key获取值K firstKey()获取第一个keyK lastKey()获取最后一个keyMap.EntryK, V firstEntry()返回该TreeMap的第一个最小的映射Map.EntryK, V lastEntry()返回该TreeMap的最后一个最大的映射SortedMapK, V headMap(K toKey)返回该TreeMap中严格小于指定key的映射集合SortedMapK, V subMap(K fromKey, K toKey)返回该TreeMap中指定范围的映射集合大于等于fromKey小于toKey
4、putAll(Map? extends K, ? extends V map)将指定映射中的所有映射复制到此映射。V put(K key, V value) 添加元素
5、void clear()清空TreeMap中的所有元素
6、V remove(Object key)从TreeMap中移除指定key对应的映射
7、V replace(K key, V value)替换指定key对应的value值boolean replace(K key, V oldValue, V newValue)当指定key的对应的value为指定值时替换该值为新值
8、CollectionV values()返回由该TreeMap中所有的values构成的集合SetMapK, V entrySet()返回由该TreeMap中的所有映射组成的Set对象