LinkedHashMap
概述
- 基于哈希表和链表实现的
Map
接口,具有可预测的迭代次序。 这种实现不同于HashMap,
它维持于所有数据的运行双向链表。 此链接列表定义迭代排序,通常是将键插入到地图(插入顺序 )中的顺序
- LinkedHashMap在操作时还保存了记录插入的顺序,用Iteraor遍历时先得到的肯定是先插入的,遍历时比HashMap慢,由于继承了HashMap所以有HashMap的全部特性。
API方法实例演示
clear
@Test
public void clear() {
//clear: 清除所有键值对数据
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"linkedHashMap");
linkedHashMap.clear();
//打印为空
System.out.println("linkedHashMap = " + linkedHashMap);
}
containsValue
@Test
public void containsValue() {
//containsValue: 判断是否包含指定的值,包含则返回true
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
//不包含这个字符串,返回为false
System.out.println(linkedHashMap.containsValue("containsValue"));
}
entrySet
@Test
public void entrySet() {
//返回一个Set接口,遍历map集合的数据
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"entrySet");
Set<Map.Entry<Integer, String>> entries = linkedHashMap.entrySet();
System.out.println("linkedHashMap.entrySet() = " + entries);
}
forEach
@Test
public void forEach() {
//forEach: 使用lambda表达式对集合进行操作
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"forEach");
//打印key值
linkedHashMap.forEach((k,v) -> System.out.println(k));
}
get
@Test
public void get() {
//get: 根据key获取value
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"get");
System.out.println("linkedHashMap.get(1) = " + linkedHashMap.get(1));
}
getOrDefault
@Test
public void getOrDefault() {
//getOrDefault: 根据键获取集合的值,如果不存在此键则返回第二个参数的内容
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"getOrDefault");
//没有2号键。输出第二个参数的内容
System.out.println(linkedHashMap.getOrDefault(2, "new Arg"));
}
keySet
@Test
public void keySet() {
//keySet: 返回一个Set接口,遍历map集合的键值
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"KeySet");
System.out.println("linkedHashMap.keySet() = " + linkedHashMap.keySet());
}
replaceAll
@Test
public void replaceAll() {
//replaceAll: 根据lambda表达式进行替换值
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"replaceAll");
linkedHashMap.replaceAll((k,v) -> "lam" + "bda");
System.out.println("linkedHashMap = " + linkedHashMap);
}
clear
@Test
public void values() {
//values: 返回一个Collection集合,用于显示所有数据
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1,"values");
Collection<String> values = linkedHashMap.values();
System.out.println("values = " + values);
}
网友评论