迭代一个条目时,使用哈希表中的值移除该条目
原文:https://www . geesforgeks . org/remove-a-entry-use-value-from-hashmap-while-iterating-it/
给定一个 HashMap 和一个 Java 中的值,任务是使用该值从这个 HashMap 中移除一个条目,同时迭代它。
示例:
输入:HashMap:{ 1 =极客,2 =极客,3 =极客暴客},value =“极客” 输出:{ 1 =极客,3 =极客暴客}
输入 : HashMap: {1=G,2=e,3=e,4=k,5=s},value = k 输出 : {1=G,2=e,3=e,5=s}
-
Using Java 7 and before:
- 获取哈希表和值
- 使用 HashMap.iterate()方法创建一个迭代器来迭代 HashMap。
- 使用 Iterator.hasNext()方法迭代 HashMap。
- 迭代时,检查该迭代的值是否等于指定的值。地图的入口值可以通过 entry.getValue()方法获得。
- 如果值匹配,则使用 remove()方法从 HashMap 中移除该迭代的条目。
- 所需条目已成功删除。
语法:
```java Iterator> iterator = map.entrySet().iterator();
while (iterator.hasNext()) { Map.Entry entry = iterator.next(); if (valueToBeRemoved.equals(entry.getValue())) { iterator.remove(); } } ```
下面是上述方法的实现:
```java // Java program to remove an entry using value // 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 value to be removed String valueToBeRemoved = "ForGeeks";
// 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 value is the required value if (valueToBeRemoved.equals(entry.getValue())) {
// Remove this entry from HashMap iterator.remove(); } }
// Print the modified HashMap System.out.println("Modified HashMap: " + map); } } ```
Output:
```java Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks} Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
```
-
Using Java 8 lambda expressions:
- 获取哈希表和值
- 使用 HashMap.entrySet()方法获取此地图的条目集。
- 如果值等于指定的值,则使用 lambda 表达式从映射中移除条目。地图的入口值可以通过 entry.getValue()方法获得。
- 所需条目已成功删除。
语法:
```java map.entrySet() .removeIf( entry -> (valueToBeRemoved .equals(entry.getValue())));
```
下面是上述方法的实现:
```java // Java program to remove an entry using value // 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 value to be removed String valueToBeRemoved = "ForGeeks";
// Print the initial HashMap System.out.println("Original HashMap: " + map);
// Remove the specified entry from the Map map.entrySet() .removeIf( entry -> (valueToBeRemoved.equals(entry.getValue())));
// Print the modified HashMap System.out.println("Modified HashMap: " + map); } } ```
Output:
```java Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks} Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
```
版权属于:月萌API www.moonapi.com,转载请注明出处