Java中的LinkedHashMap get()方法及示例
LinkedHashMap是HashMap的一个子类,它使用一个链表来维护Map的顺序,迭代时可以按照插入顺序输出。同时,LinkedHashMap还提供了一些额外的方法,以支持按照访问顺序或者指定顺序输出Map,其中包括get()方法。
LinkedHashMap的get()方法
get()方法用于获取指定键所对应的值,其声明如下:
public V get(Object key)
在LinkedHashMap中,get()方法的底层实现与HashMap中的get()方法极其相似,只是在查找键值对时将维护顺序的链表也参与到了查找中,以保证在按照访问顺序输出时不会出现错误。
LinkedHashMap get()方法示例
下面是使用LinkedHashMap get()方法的一个示例,其中建立了一个包含元素(1, “one”)、(2, “two”)和(3, “three”)的Map,并对其进行了一些操作:
import java.util.LinkedHashMap;
public class Main {
public static void main(String[] args) {
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
// 添加元素
linkedHashMap.put(1, "one");
linkedHashMap.put(2, "two");
linkedHashMap.put(3, "three");
// 访问元素,按照插入顺序输出
System.out.println("初始顺序:");
for (Integer key : linkedHashMap.keySet()) {
System.out.println(key + ":" + linkedHashMap.get(key));
}
// 访问元素,按照访问顺序输出
System.out.println("访问顺序:");
linkedHashMap.get(2);
for (Integer key : linkedHashMap.keySet()) {
System.out.println(key + ":" + linkedHashMap.get(key));
}
// 删除元素,按照访问顺序删除
System.out.println("删除顺序:");
linkedHashMap.remove(2);
for (Integer key : linkedHashMap.keySet()) {
System.out.println(key + ":" + linkedHashMap.get(key));
}
}
}
输出结果为:
初始顺序:
1:one
2:two
3:three
访问顺序:
1:one
3:three
2:two
删除顺序:
1:one
3:three
从上面的结果可以看出,在按照访问顺序输出元素时,先访问的元素排在后面,并且删除元素时也是按照访问顺序删除的。
结论
通过以上示例和说明,我们了解到了LinkedHashMap的get()方法的用法和底层实现原理。在使用LinkedHashMap时,我们可以根据具体需求来选择按照插入顺序、访问顺序或自定义顺序输出Map,并且可以使用get()方法来方便地获取指定键对应的值。