gpt4 book ai didi

java - 如何在同一个循环中访问 HashMap 中的2个键?

转载 作者:行者123 更新时间:2023-12-02 08:43:06 24 4
gpt4 key购买 nike

我正在尝试使用Map.Entry在同一个for循环中访问key1key2。但有时 entry.getKey() 仅返回当前 key 。如何同时访问 2 个 key ?

for(Map.Entry<Long, NodeDisjoint1> entry : map.entrySet()) {
long parent1 = findSet(entry.getKey());
long parent2 = findSet(entry.getKey());
}

最佳答案

按如下方式进行:

Set<Map.Entry<Long, NodeDisjoint1>> entrySet = map.entrySet();
List<Map.Entry<Long, NodeDisjoint1>> entryList = new ArrayList<>(entrySet);
ListIterator<Map.Entry<Long, NodeDisjoint1>> itr = entryList.listIterator();
long parent1, parent2;
while(itr.hasNext()) {
parent1 = findSet((Entry)itr.next().getKey());
if(itr.hasNext()) {
parent2 = findSet((Entry)itr.next().getKey());
itr.previous();
}
}

演示:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;

public class Main {
public static void main(String[] args) {
Set<Integer> set = new LinkedHashSet<Integer>(Arrays.asList(10, 20, 30, 40));
List<Integer> list = new ArrayList<Integer>(set);
ListIterator<Integer> itr = list.listIterator();
while (itr.hasNext()) {
System.out.println(itr.next());
if (itr.hasNext()) {
System.out.println(itr.next());
itr.previous();
}
}
}
}

输出:

10
20
20
30
30
40
40

如有任何疑问/问题,请随时联系。

关于java - 如何在同一个循环中访问 HashMap 中的2个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61251799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com