迭代时使用 HashMap 中的键删除条目
给定一个 HashMap 和Java中的一个键,任务是使用该键从该 HashMap 中删除一个条目,同时对其进行迭代。
例子:
Input: HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}, key = 2
Output: {1=Geeks, 3=GeeksForGeeks}
Input: HashMap: {1=G, 2=e, 3=e, 4=k, 5=s}, key = 3
Output: {1=G, 2=e, 4=k, 5=s}
- 使用Java 7 及之前版本:
- 获取 HashMap 和密钥
- 使用 HashMap.iterate() 方法创建一个迭代器来迭代 HashMap。
- 使用 Iterator.hasNext() 方法迭代 HashMap。
- 迭代时,检查该迭代的键是否等于指定的键。 Map 的入口键可以通过 entry.getKey() 方法获取。
- 如果键匹配,则使用 remove() 方法从 HashMap 中删除该迭代的条目。
- 所需条目已成功删除。
程序:
// Java program to remove an entry using key // from a HashMap while iterating over it import java.util.*; public class GFG { public static void main(String[] args) { // Create a HashMap HashMap
map = new HashMap<>(); // Populate the HashMap map.put(1, "Geeks"); map.put(2, "ForGeeks"); map.put(3, "GeeksForGeeks"); // Get the key to be removed int keyToBeRemoved = 2; // Print the initial HashMap System.out.println("Original HashMap: " + map); // Get the iterator over the HashMap Iterator > iterator = map.entrySet().iterator(); // Iterate over the HashMap while (iterator.hasNext()) { // Get the entry at this iteration Map.Entry entry = iterator.next(); // Check if this key is the required key if (keyToBeRemoved == entry.getKey()) { // Remove this entry from HashMap iterator.remove(); } } // Print the modified HashMap System.out.println("Modified HashMap: " + map); } } 输出:Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks} Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
- 使用Java 8 lambda 表达式:
- 获取 HashMap 和密钥
- 使用 HashMap.entrySet() 方法获取该地图的入口集。
- 使用 lambda 表达式,如果键等于指定的键,则从映射中删除条目。 Map 的入口键可以通过 entry.getKey() 方法获取。
- 所需条目已成功删除。
程序:
// Java program to remove an entry using key // from a HashMap while iterating over it import java.util.*; public class GFG { public static void main(String[] args) { // Create a HashMap HashMap
map = new HashMap<>(); // Populate the HashMap map.put(1, "Geeks"); map.put(2, "ForGeeks"); map.put(3, "GeeksForGeeks"); // Get the key to be removed int keyToBeRemoved = 2; // Print the initial HashMap System.out.println("Original HashMap: " + map); // Remove the specified entry from the Map map.entrySet() .removeIf( entry -> (keyToBeRemoved == entry.getKey())); // Print the modified HashMap System.out.println("Modified HashMap: " + map); } } 输出:Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks} Modified HashMap: {1=Geeks, 3=GeeksForGeeks}