在Java中从 HashMap 中删除所有映射
映射用于将键与值相关联,而列表是有序集合。 Map 是Java Collection Framework 中的一个接口,HashMap 是 Map 接口的一种实现。 HashMap 可以有效地基于键定位值以及基于键插入和删除值。
为了从Java中的 HashMap 中删除所有映射,我们可以使用各种方法:
- 清除()方法
- 通过迭代器删除
- removeIf() 方法
方法一:使用clear()方法
Java中的Java .util.HashMap.clear() 方法用于清除和移除指定 HashMap 中的所有元素或映射。
句法:
Hash_Map.clear()
Java
// Java program to remove mappings from
// HashMap using clear() method
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
HashMap gfg = new HashMap<>();
// adding values in hashMap 1
gfg.put("DSA", 100);
gfg.put("Problem Solving", 100);
gfg.put("Development", 99);
gfg.put("Interviews", 99);
gfg.put("Competitive Programming", 97);
gfg.put("FANG", 99);
// printing the size and elements
System.out.println("-------before removing------");
System.out.println(gfg);
System.out.println(gfg.size());
// clear() method
gfg.clear();
System.out.println("--------After removing-------");
System.out.println(gfg);
System.out.println(gfg.size());
}
}
Java
// Java program to remove each key value pair
// by iterating over the Hashmap
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
HashMap gfg = new HashMap<>();
// adding values in hashMap 1
gfg.put("DSA", 100);
gfg.put("Problem Solving", 100);
gfg.put("Development", 99);
gfg.put("Interviews", 99);
gfg.put("Competitive Programming", 97);
gfg.put("FANG", 99);
// printing the size and elements
System.out.println("-------before removing------");
System.out.println(gfg);
System.out.println(gfg.size());
// getting all keys of map using keySet()
Set keyset = gfg.keySet();
// iterating over the keys and removing
// hasNext() method is used to check whether next
// element present inside the collection or not
Iterator itr = keyset.iterator();
while (itr.hasNext()) {
itr.next();
itr.remove();
}
System.out.println("--------After removing-------");
System.out.println(gfg);
System.out.println(gfg.size());
}
}
Java
// Java program to remove the hashings
// from HashMap using removeIf()
import java.io.*;
import java.util.*;
public class GFG {
public static void main(String args[])
{
HashMap gfg = new HashMap<>();
// adding values in hashMap 1
gfg.put("DSA", 100);
gfg.put("Problem Solving", 100);
gfg.put("Development", 99);
gfg.put("Interviews", 99);
gfg.put("Competitive Programming", 97);
gfg.put("FANG", 99);
System.out.println("-------before removing------");
System.out.println(gfg);
System.out.println(gfg.size());
// getting all the keys of map
Set keySet = gfg.keySet();
// checking the entry set
// key in keySet and remove
// it one by one
gfg.entrySet().removeIf(
entry -> keySet.contains(entry.getKey()));
System.out.println("--------After removing-------");
System.out.println(gfg);
System.out.println(gfg.size());
}
}
输出
-------before removing------
{DSA=100, FANG=99, Competitive Programming=97, Problem Solving=100, Development=99, Interviews=99}
6
--------After removing-------
{}
0
方法二:通过迭代器移除
- 在这种方法中,您将使用迭代器遍历 Map,然后在迭代器上调用 remove。
- 在这种情况下,我们迭代从调用 keySet() 方法获得的键。
- hasNext() 用于检查集合中是否存在下一个元素。
Java
// Java program to remove each key value pair
// by iterating over the Hashmap
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
HashMap gfg = new HashMap<>();
// adding values in hashMap 1
gfg.put("DSA", 100);
gfg.put("Problem Solving", 100);
gfg.put("Development", 99);
gfg.put("Interviews", 99);
gfg.put("Competitive Programming", 97);
gfg.put("FANG", 99);
// printing the size and elements
System.out.println("-------before removing------");
System.out.println(gfg);
System.out.println(gfg.size());
// getting all keys of map using keySet()
Set keyset = gfg.keySet();
// iterating over the keys and removing
// hasNext() method is used to check whether next
// element present inside the collection or not
Iterator itr = keyset.iterator();
while (itr.hasNext()) {
itr.next();
itr.remove();
}
System.out.println("--------After removing-------");
System.out.println(gfg);
System.out.println(gfg.size());
}
}
输出
-------before removing------
{DSA=100, FANG=99, Competitive Programming=97, Problem Solving=100, Development=99, Interviews=99}
6
--------After removing-------
{}
0
方法 3:使用removeIf()方法
句法:
public boolean removeIf(Predicate filter)
参数:此方法采用一个参数过滤器,该过滤器表示一个谓词,该谓词为要删除的元素返回 true。
返回:如果谓词返回 true,则此方法返回True ,并且我们能够删除元素。
异常:如果指定的过滤器为空,则此方法抛出NullPointerException 。
- 在此方法中,您需要指定移除元素的条件,但对于我们的示例,我们需要移除所有元素。
- 因此,我们需要迭代条目集中的每个键。我们将检查使用keySet()方法获得的密钥集。
- 我们正在删除 keySet 中存在的 entrySet 的每个键。每个 entry 对象,1 entry=1key+1 value。
- keySet() 给出地图中存在的所有键。
Java
// Java program to remove the hashings
// from HashMap using removeIf()
import java.io.*;
import java.util.*;
public class GFG {
public static void main(String args[])
{
HashMap gfg = new HashMap<>();
// adding values in hashMap 1
gfg.put("DSA", 100);
gfg.put("Problem Solving", 100);
gfg.put("Development", 99);
gfg.put("Interviews", 99);
gfg.put("Competitive Programming", 97);
gfg.put("FANG", 99);
System.out.println("-------before removing------");
System.out.println(gfg);
System.out.println(gfg.size());
// getting all the keys of map
Set keySet = gfg.keySet();
// checking the entry set
// key in keySet and remove
// it one by one
gfg.entrySet().removeIf(
entry -> keySet.contains(entry.getKey()));
System.out.println("--------After removing-------");
System.out.println(gfg);
System.out.println(gfg.size());
}
}
输出
-------before removing------
{DSA=100, FANG=99, Competitive Programming=97, Problem Solving=100, Development=99, Interviews=99}
6
--------After removing-------
{}
0