我有一个映射,其中键也可以作为一个值存在。我需要从值中删除这些。我写了一个方法来做我所需要的,只是我有超过8万个密钥,这需要永远的时间。
static void cleanSetMap(Map<String, Set<String>> inputMap){
List<String> keys = new ArrayList<>(inputMap.keySet());
List<Set<String>> values = new ArrayList<>(inputMap.values());
for (int i = 0; i < keys.size(); i++) {
String key = keys.get(i);
for (int j = 0; j < values.size(); j++) {
Set<String> set = values.get(j);
set.remove(key);
values.set(j, set);
}
}
for (int i = 0; i < keys.size(); i++) {
inputMap.put(keys.get(i), values.get(i));
}}
这可以更简单或更快地完成吗?
https://stackoverflow.com/questions/50659565
复制相似问题