Java LinkedHashMap
1 什么是Java LinkedHashMap
Java LinkedHashMap类实现了Map接口,继承了HashMap类,LinkedHashMap存储的元素是有序的。
Java LinkedHashMap类要记住的核心要点:
- Java LinkedHashMap包含key-value对。
- Java LinkedHashMap不能存储重复元素。
- Java LinkedHashMap可以包含一个或多个null值。
- Java LinkedHashMap是非同步(线程不安全的)。
- Java LinkedHashMap是元素有序的。
- Java HashMap类的初始默认容量为16,负载因子为0.75。
2 Java LinkedHashMap的语法
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>
3 Java LinkedHashMap的构造方法
构造方法 | 描述 |
---|---|
LinkedHashMap() | 用于构造默认的LinkedHashMap。 |
LinkedHashMap(int capacity) | 用于初始化具有给定容量的LinkedHashMap。 |
LinkedHashMap(int capacity, float loadFactor) | 用于初始化容量和负载系数。 |
LinkedHashMap(int capacity, float loadFactor, boolean accessOrder) | 用于以指定的accessOrder初始化容量和负载系数。 |
LinkedHashMap(Map<? extends K,? extends V> m) | 用于使用给定Map类中的元素初始化LinkedHashMap。 |
4 Java LinkedHashMap的方法
方法 | 描述 |
---|---|
V get(Object key) | 返回根据key获取value对象。 |
void clear() | 删除LinkedHashMap中的所有元素。 |
boolean containsValue(Object value) | 如果Map将一个或多个key映射到指定value值,则返回true。 |
Set<Map.Entry<K,V>> entrySet() | 返回Map中所有Entry的Set集合。 |
void forEach(BiConsumer<? super K,? super V> action) | 对Map中的每个条目执行给定的操作,直到所有条目都已处理或该操作引发异常为止。 |
V getOrDefault(Object key, V defaultValue) | 根据key获取value对象。;如果Map不包含此key,则返回默认值defaultValue。 |
Set<K> keySet() | 返回Map包含的key的Set集合。 |
protected boolean removeEldestEntry(Map.Entry<K,V> eldest) | 删除最旧的条目时返回true。 |
void replaceAll(BiFunction<? super K,? super V,? extends V> function) | 用在该条目上调用给定函数的结果替换每个条目的值,直到处理完所有条目或该函数引发异常为止。 |
Collection<V> values() | 返回Map中包含的所有value的Collection集合。 |
5 Java LinkedHashMap的例子
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java LinkedHashMap的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
LinkedHashMap<Integer,String> hm=new LinkedHashMap<Integer,String>();
hm.put(100,"Eric");
hm.put(101,"Jack");
hm.put(102,"Rose");
for(Map.Entry m:hm.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
输出结果为:
100 Eric
101 Jack
102 Rose
6 Java LinkedHashMap的例子:keySet()
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java LinkedHashMap的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer, String>();
map.put(100,"Eric");
map.put(101,"Jack");
map.put(102,"Lucy");
//获取key
System.out.println("Keys: "+map.keySet());
//获取value
System.out.println("Values: "+map.values());
//获取Entry
System.out.println("Key-Value pairs: "+map.entrySet());
}
}
输出结果为:
Keys: [100, 101, 102]
Values: [Eric, Jack, Lucy]
Key-Value pairs: [100=Eric, 101=Jack, 102=Lucy]
7 Java LinkedHashMap的例子:remove()
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java LinkedHashMap的例子
*/
import java.util.*;
public class Demo {
public static void main(String args[]) {
Map<Integer,String> map=new LinkedHashMap<Integer,String>();
map.put(101,"Jack");
map.put(102,"Rose");
map.put(103,"Paul");
System.out.println("执行remove()方法前: "+map);
map.remove(102);
System.out.println("执行remove()方法后: "+map);
}
}
输出结果为:
执行remove()方法前: {101=Jack, 102=Rose, 103=Paul}
执行remove()方法后: {101=Jack, 103=Paul}
热门文章
优秀文章