首页  >  文章  >  Java  >  Java LinkedHashMap

Java LinkedHashMap

WBOY
WBOY原创
2024-08-30 15:47:58485浏览

在Java中,LinkedHashMap是Map接口的linkedlist的实现。它类似于 HashMap,其中包含一个额外的功能来维护插入其中的元素的顺序。尽管 HashMap 提供了快速插入、删除和搜索,但元素插入顺序并没有得到维护。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

Java LinkedHashMap 的特点

除此之外,LinkedHashMap 中还包含其他一些功能。

  • 它仅由独特的元素组成。
  • 它可以包含一个空键和多个空值。
  • 维持广告订单。
  • 扩展 HashMap 类。
  • 存在的值基于键。
  • 不同步。
  • 16是初始默认容量
  • 负载系数为0.75。

语法:

LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>();

这里,obj是创建的LinkedHashMap的对象。

LinkedHashMap 对象创建后,它将用于向映射添加元素,如下所示。

obj.put(11, "Victor");
obj.put(33, "Shyla");
obj.put(14, "Nancy");
obj.put(100, "Kuffi");
obj.put(23, "Princy");
obj.put(37, "Chamm");

构造函数

下面给出的是 LinkedHashMap 的构造函数:

1。 LinkedHashMap(): 将创建一个空的 LinkedHashMap 实例,其顺序基于插入,加载因子 0.75,默认初始容量为 16。

2。 LinkedHashMap(int initialCapacity): 将创建一个空的 LinkedHashMap 实例,其顺序基于插入、加载因子 0.75 和指定的初始容量。

3。 LinkedHashMap(int initialCapacity, float loadFactor): 将创建一个空的 LinkedHashMap 实例,其排序基于插入、指定的负载因子和初始容量。

4。 LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder): 将创建一个空的 LinkedHashMap 实例,并指定加载因子、访问顺序和初始容量。

5。 LinkedHashMap(Map extends K,? extends V> m): 将创建一个 LinkedHashMap 实例,其顺序基于插入,映射基于上述映射。

方法

以下是LinkedHashMap中常用的方法

1。 clear(): 地图中的每个映射都将被删除。

2。 boolean containsKey(Object key): 如果映射包含到所提及值的一个或多个键的映射,则返回 true。

3。 boolean containsValue(Object key): 如果映射包含至少一个键的映射,则返回 true。

4。 Object get(Object key): 将返回所提到的键映射的值。

5。 isEmpty(): 如果不存在键值对映射,则返回 true。

6。 size(): 将返回地图中可用的键值对的数量。

7。对象删除(对象键):所提到的键映射的值将被删除。

8。 boolean removeEldestEntry(Map.Entry eldest): 如果可以删除最旧的条目,则返回 true。

Java LinkedHashMap 示例

下面给出的是 Java LinkedHashMap 的示例:

示例#1

用于创建简单 LinkedHashMap 的 Java 程序。

代码:

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
//class begins here
public class LinkedHashMapExample {
//main method
public static void main(String args[]) {
// create a LinkedHashMap
LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>();
//Adding key-value pair 1
obj.put(11, "Anna");
//Adding key-value pair 2
obj.put(33, "Adam");
//Adding key-value pair 3
obj.put(14, "Iza");
//Adding key-value pair 4
obj.put(23, "Norah");
//Adding key-value pair 5
obj.put(100, "Denan");
// create an entry set
Set s = obj.entrySet();
// Display the elements
Iterator itr = s.iterator();
//iterate each element
while(itr.hasNext()) {
//create an object for map.entry
Map.Entry mp = (Map.Entry)itr.next();
//print each element
System.out.print("Key in the LinkedHashMap is : "+ mp.getKey() +
" and it's corresponding value is: "+mp.getValue()+" \n");
}
}
}

输出:

Java LinkedHashMap

在这个程序中,首先创建了一个LinkedHashMap。之后,元素将通过键值对添加到其中。一旦完成,就会创建一个条目集。此外,为了打印LinkedHashMap中的所有元素,创建了一个迭代器。通过迭代每个元素,它会被打印并显示,如示例输出所示。

示例#2

从映射中删除键值对的 Java 程序。

代码:

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
//class begins here
public class LinkedHashMapExample {
//main method
public static void main(String args[]) {
// create a LinkedHashMap
LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>();
//Adding key-value pair 1
obj.put(11, "Victor");
//Adding key-value pair 2
obj.put(33, "Shyla");
//Adding key-value pair 3
obj.put(14, "Nancy");
//Adding key-value pair 4
obj.put(100, "Kuffi");
//Adding key-value pair 5
obj.put(23, "Princy");
//Adding key-value pair 6
obj.put(37, "Chamm");
System.out.print("Before removal, LinkedHashMap is: "+obj+"\n");
//remove the elements with keys 100 and 37
obj.remove(100);
obj.remove(37);
System.out.print("After removal, LinkedHashMap is: "+obj);
}
}

输出:

Java LinkedHashMap

在这个程序中,也首先创建了一个LinkedHashMap。之后,元素将通过键值对添加到其中。一旦完成,就会打印LinkedHashMap。然后,使用remove()方法从映射中删除两个键值对。之后,再次打印并显示地图,如示例输出所示。

示例#3

Java 程序根据访问顺序打印映射中的键值对。

代码:

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
//class begins here
public class LinkedHashMapExample {
//main method
public static void main(String args[]) {
// create a LinkedHashMap with third paramter set access order
LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>(2, .75f, true);
//Adding key-value pair 1
obj.put(11, "Victor");
//Adding key-value pair 2
obj.put(33, "Shyla");
//Adding key-value pair 3
obj.put(14, "Nancy");
//Adding key-value pair 4
obj.put(100, "Kuffi");
//Adding key-value pair 5
obj.put(23, "Princy");
//Adding key-value pair 6
obj.put(37, "Chamm");
//Access the pair 33
obj.get(33);
//Access the pair 11
obj.get(11);
System.out.print("LinkedHashMap with access order is: "+obj);
}
}

输出:

Java LinkedHashMap

这里,在这个程序中,也首先创建了一个LinkedHashMap。之后,元素将通过键值对添加到其中。完成后,将访问具有键 33 和 11 的元素。然后,打印并显示地图,如示例输出所示。可以看到,访问到的元素都在map的末尾。

结论

本文详细探讨了 Java LinkedHashMap 的几乎所有细节,例如语法、构造函数、方法和示例。此外,它还指出了 LinkedHashMap 和 HashMap 之间的主要区别。

以上是Java LinkedHashMap的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn