HashMap、TreeMap以及LinkedHashMap

HashMap

HashMap中的元素是无序的。

新建:

HashMap<String, String> hashmap= new HashMap<String, String>();

常用方法:

参考java学习小结1.

遍历方式:

for(String str : hashmap.keySet()){
    int value = hashmap.get(str);
    System.out.println(value);
}

TreeMap

TreeMap中的元素默认按照keys的自然排序排列。

新建:

TreeMap<Integer, String> treeMap = new TreeMap<>();

常用方法:

增添元素:

V put(K key, V value):将指定映射放入该TreeMap中。

V putAll(Map map):将指定map放入该TreeMap中。

删除元素:

void clear():清空TreeMap中的所有元素。

V remove(Object key):从TreeMap中移除指定key对应的映射。

修改元素:

V replace(K key, V value):替换指定key对应的value值。

boolean replace(K key, V oldValue, V newValue):当指定key的对应的value为指定值时,替换该值为新值。

查找元素:

boolean containsKey(Object key):判断该TreeMap中是否包含指定key的映射。

boolean containsValue(Object value):判断该TreeMap中是否包含有关指定value的映射。

Map.Entry<K, V> firstEntry():返回该TreeMap的第一个(最小的)映射。

K firstKey():返回该TreeMap的第一个(最小的)映射的key。

Map.Entry<K, V> lastEntry():返回该TreeMap的最后一个(最大的)映射。

K lastKey():返回该TreeMap的最后一个(最大的)映射的key。

v get(K key):返回指定key对应的value。

SortedMap<K, V> headMap(K toKey):返回该TreeMap中严格小于指定key的映射集合。

SortedMap<K, V> subMap(K fromKey, K toKey):返回该TreeMap中指定范围的映射集合(大于等于fromKey,小于toKey)。

遍历接口:

Set<Map<K, V>> entrySet():返回由该TreeMap中的所有映射组成的Set对象。

void forEach(BiConsumer<? super K,? super V> action):对该TreeMap中的每一个映射执行指定操作。

Collection values():返回由该TreeMap中所有的values构成的集合。

其他方法:

Object clone():返回TreeMap实例的浅拷贝。

Comparator<? super K> comparator():返回给该TreeMap的keys排序的comparator,若为自然排序则返回null。

int size():返回该TreepMap中包含的映射的数量。

遍历方式:

for循环

for (Map.Entry entry : treeMap.entrySet()) {
      System.out.println(entry);
}

迭代器循环

Iterator iterator = treeMap.entrySet().iterator();
while (iterator.hasNext()) {
      System.out.println(iterator.next());
}

LinkedHashMap

LinkedHashMap的元素是按照元素插入顺序排列的。

新建:

 LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>();

常用方法:

clear():从此映射中删除所有映射。

containsValue(Object value):果此映射将一个或多个键映射到指定值,则返回true。(如果存在value值,则返回true)

get(Object key):回指定键映射到的值,如果此映射不包含键的映射,则返回null。

其他方法:

其他方法诸如put、remove方法LinkedHashMap没有重写,所以可以通过调用父类HashMap的put、remove方法来实现。(参考java学习小结1)

遍历方式:

for循环

 for(Map.Entry<String, String> entry : linkedHashMap.entrySet()) {
     System.out.println("key:" + entry.getKey() + "   value:" + entry.getValue());
 }

迭代器循环:

while (it.hasNext()) {
    Map.Entry entry = (Map.Entry) it.next();
    System.out.println("key:" + entry.getKey() + "   value:" + entry.getValue());
}
发布了36 篇原创文章 · 获赞 2 · 访问量 986

猜你喜欢

转载自blog.csdn.net/y18771025420/article/details/102527875