Java中的HashMap 类方法与示例|设置 1(put()、get()、isEmpty() 和 size())
HashMap 是一种数据结构,它使用哈希函数将标识值(称为键)映射到它们的关联值。它包含“键值”对,并允许通过键检索值。最令人印象深刻的功能是它可以快速查找元素,尤其是对于大编号。的元素。默认情况下它是不同步的,但我们可以通过调用来实现
Map myhash = Collections.synchronizedMap(hashMap);
在创建时,以防止对地图的意外不同步访问。
这些是各种重要的 hashmap 类方法。这篇文章解释了:put()、get()、isEmpty() 和 size()
- put(): Java.util.HashMap.put() 在将指定值与此映射中的指定键关联方面发挥作用。如果映射先前包含键的映射,则替换旧值。
句法:
public V put(K key,V value) Parameters: key - key with which the specified value is to be associated value - value to be associated with the specified key Return: the previous value associated with key, or null if there was no mapping for key.
- get(): Java.util.HashMap.get() 方法返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。
句法:
public V get(Object key) Parameters: key - the key whose associated value is to be returned Return: the value to which the specified key is mapped, or null if this map contains no mapping for the key.
- isEmpty():如果映射不包含键值映射,则Java.util.HashMap.isEmpty() 方法返回 true。
句法:
public boolean isEmpty() Return: true if this map contains no key-value mappings
- size(): Java.util.HashMap.size() 返回此映射中键值映射的数量。
句法:
public int size() Return: the number of key-value mappings in this map.
实现来说明上述方法
// Java program illustrating use of HashMap methods -
// put(), get(), isEmpty() and size()
import java.util.*;
public class NewClass
{
public static void main(String args[])
{
// Creation of HashMap
HashMap Geeks = new HashMap<>();
// Adding values to HashMap as ("keys", "values")
Geeks.put("Language", "Java");
Geeks.put("Platform", "Geeks For geeks");
Geeks.put("Code", "HashMap");
Geeks.put("Learn", "More");
System.out.println("Testing .isEmpty() method");
// Checks whether the HashMap is empty or not
// Not empty so printing the values
if (!Geeks.isEmpty())
{
System.out.println("HashMap Geeks is notempty");
// Accessing the contents of HashMap through Keys
System.out.println("GEEKS : " + Geeks.get("Language"));
System.out.println("GEEKS : " + Geeks.get("Platform"));
System.out.println("GEEKS : " + Geeks.get("Code"));
System.out.println("GEEKS : " + Geeks.get("Learn"));
// size() method prints the size of HashMap.
System.out.println("Size Of HashMap : " + Geeks.size());
}
}
}
输出
Testing .isEmpty() method
HashMap Geeks is notempty
GEEKS : Java
GEEKS : Geeks For geeks
GEEKS : HashMap
GEEKS : More
Size Of HashMap : 4
HashMap 和 TreeMap 有什么区别?
- HashMap 实现 Map 接口,而 TreeMap 实现 SortedMap 接口。 Sorted Map 接口是 Map 的子接口。
- HashMap 实现了 Hashing,而 TreeMap 实现了红黑树(一种自平衡二叉搜索树)。因此,哈希和平衡二叉搜索树之间的所有差异都适用于此。
- HashMap 和 TreeMap 都有对应的 HashSet 和 TreeSet。 HashSet 和 TreeSet 实现了 Set 接口。在 HashSet 和 TreeSet 中,我们只有 key,没有 value,这些主要用于查看集合中的存在/不存在。对于上述问题,我们不能使用 HashSet(或 TreeSet),因为我们不能存储计数。我们更喜欢 HashSet(或 TreeSet)而不是 HashMap(或 TreeMap)的一个示例问题是打印数组中的所有不同元素。
有关详细信息,请参阅 HashMap 和 TreeMap。
Java中的HashMap和HashTable有什么区别?
- HashMap 是非同步的。它不是线程安全的,并且在没有适当的同步代码的情况下不能在多个线程之间共享,而 Hashtable 是同步的。它是线程安全的,可以与许多线程共享。
- HashMap 允许一个空键和多个空值,而 Hashtable 不允许任何空键或空值。
- 如果不需要线程同步,HashMap 通常优于 HashTable
- HashMap 是 Hashtable 的高级版本和改进。 HashMap 是后来创建的。
详情请参考Java中 HashMap 和 HashTable 的区别。
HashMap 和 HashSet 有什么区别?
- HashMap 存储键值对(例如,学生记录作为值,卷号作为键),而 HashSet 仅存储键(例如,如果是整数则为集合)。
- HashSet 内部使用 HashMap 来存储键
有关详细信息,请参阅Java中的 HashSet。
Java中的Hashmap方法与示例|设置 2 (keySet(), values(), containsKey())
参考:
https://docs.oracle.com/javase/7/docs/api/java Java