java 写一个方法对LinkedHashMap进行遍历,这个LinkedHashMap的key是有序int,value是string,输入一个key进行移除一个键值对,最后返回一个ke重新排序的LinkedHashMap
时间: 2023-08-12 17:59:50 浏览: 105
你可以使用Java的`TreeMap`来实现根据key排序的功能,然后再进行遍历和移除操作。下面是一个示例代码:
```java
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class LinkedHashMapTraversal {
public static LinkedHashMap<Integer, String> traverseAndRemove(LinkedHashMap<Integer, String> map, int keyToRemove) {
TreeMap<Integer, String> sortedMap = new TreeMap<>(map);
sortedMap.remove(keyToRemove);
LinkedHashMap<Integer, String> result = new LinkedHashMap<>();
for (Map.Entry<Integer, String> entry : sortedMap.entrySet()) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
public static void main(String[] args) {
LinkedHashMap<Integer, String> map = new LinkedHashMap<>();
map.put(4, "D");
map.put(2, "B");
map.put(1, "A");
map.put(3, "C");
LinkedHashMap<Integer, String> result = traverseAndRemove(map, 2);
System.out.println(result); // 输出: {1=A, 3=C, 4=D}
}
}
```
在上面的代码中,我们首先创建了一个`TreeMap`对象`sortedMap`,并将原始的`LinkedHashMap`对象`map`作为参数传递给`TreeMap`的构造函数。这样就能够实现根据key进行排序。
然后,我们使用`sortedMap.remove(keyToRemove)`来移除指定的键值对。
接下来,我们创建一个新的`LinkedHashMap`对象`result`,并根据排序后的`sortedMap`中的键值对进行遍历,将其放入`result`中。
最后,我们返回`result`,即重新排序后的`LinkedHashMap`对象。
在`main`方法中,我们创建了一个示例的`LinkedHashMap`,并调用`traverseAndRemove`方法进行遍历和移除操作。最后打印修改后的`LinkedHashMap`,输出为`{1=A, 3=C, 4=D}`,已按照key重新排序。
阅读全文