Java 字典
在 Java 语言中,字典使用称为 Map
接口的数据结构表示。Map
数据结构用于以键值对的形式呈现数据。Map
是一个跟踪所有键和相应值的接口。用户可以根据唯一键检索值。Map
接口包含以下属性:
Map
中的所有键都是唯一的。- 可以有一个唯一键对应一个或多个值。
- 键是非空的实体。
下面的代码块演示了在 Java 语言中使用字典或 Map
。
import java.util.HashMap;
import java.util.Map;
public class Dictionary {
public static void main(String[] args) {
System.out.println("Dictionary in Java");
System.out.println("Using HashMap ");
Map<String, String> map = new HashMap<>();
map.put("1", "Letters with alphabetical Order with key A");
map.put("2", "Letters with alphabetical Order with key B");
System.out.println(map.get("2"));
}
}
除了 Collection
框架层次结构之外,Map
是一个单独存在的界面。
Map
存在于 java.util
包中,显示了如何将键映射到值。一个映射可以有多种实现,它们是:
HashMap
LinkedHashMap
哈希表
每个的用法可以根据用户对实现的需求而有所不同。
在上面的代码片段中,使用了 HashMap
实现。它是 Java 语言中默认且广泛使用的类。所有三种类型之间的区别定义如下。
HashMap
是在 Java 1.2 版本中引入的,而 Hashtable
是一个遗留类。它是线程安全的,因此允许在多个线程之间进行并发操作,从而保持代码的一致性。但是 HashMap
不是线程安全的并且不允许并发。
由于 HashMap
的线程安全特性,它的性能比 Hashtable
更快。此外,HashMap
是快速失败的,并且当它的实例一次被多个线程操作时会抛出 ConcurrencyException
。相比之下,Hashtable
似乎是安全的。LinkedHashMap
的用例驻留在用户想要保存插入顺序时。
Map
实例是使用上面代码块中的 HashMap
类创建的。get
和 put
等操作用于存储和检索实例中的特定值。put
方法有两个参数,即键和它的值。
在内部,如果键存在于 Map 对象中,则首先使用 containsKey()
函数对其进行评估。如果计算结果为真,则键的当前值将替换为新值。如果具有给定键的 Map
不支持定义的操作,则该方法将抛出 UnsupportedOperationException
。
ClassCastException
如果键或值阻止键存储,NullPointerException
如果指定的键或值是 null
并且 Map
不允许 null
键或值。IllegalArgumentException
如果键或值的某些属性阻止其存储在 Map
中。
一旦键被插入到 Map
中,就会使用 get
函数检索它。get
函数采用一个作为唯一键的参数。当键不合适或指定的键为 null
时,它会抛出 ClassCastException
和 NullPointerException
。
下面是使用 HashMap
类的 Map 界面的输出。
Dictionary in Java
Using HashMap
Letters with alphabetical Order with key B
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn