📜  在Java中从 HashMap 中删除所有映射

📅  最后修改于: 2022-05-13 01:54:59.642000             🧑  作者: Mango

在Java中从 HashMap 中删除所有映射

映射用于将键与值相关联,而列表是有序集合。 Map 是Java Collection Framework 中的一个接口,HashMap 是 Map 接口的一种实现。 HashMap 可以有效地基于键定位值以及基于键插入和删除值。

为了从Java中的 HashMap 中删除所有映射,我们可以使用各种方法:

  1. 清除()方法
  2. 通过迭代器删除
  3. 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