[英]How can I make Iterator from List<HashSet<Integer>> collection?
我试图使List<HashSet<Integer>> list = new ArrayList<>()
迭代器List<HashSet<Integer>> list = new ArrayList<>()
。
但是,我一直在跌倒。
这是我尝试过的迭代器Iterator<HashSet<Integer>> iterator = new list.iterator()
请有人帮我:(
如何创建该集合的迭代器?
这是代码的一部分
public class Test {
private static List<HashSet<Integer>> basketList = new ArrayList<>();
private static Map<Integer, Integer> map = new HashMap<>();
public static void settingBasket(String fname) throws FileNotFoundException {
Scanner scan = new Scanner(new File(fname));
int n = Integer.parseInt(scan.next());
Iterator<HashSet<Integer>> iter = basketList.iterator(); // error
for(int i=0; i<n; i++) {
scan.next();
int m = Integer.parseInt(scan.next());
HashSet<Integer> elems = new HashSet<>();
for(int j=0; j<m; j++)
elems.add(Integer.parseInt(scan.next()));
basketList.add(elems);
}
}
public static void settingPair() {
int size = basketList.size();
for(int i=0; i<size; i++) {
Iterator<HashSet<Integer>> iter = basketList.iterator(); // error
}
}
您可以使用嵌套循环简单地遍历列表中的Set,如下所示:
for (HashSet<Integer> set : basketList) {
for (Integer i : set) {
System.out.println(i);
}
}
另外,如果您希望列表中的每个Set都有一个Iterator,则可以按照以下步骤进行操作:
for (int i = 0 ; i < basketList.size(); i++) {
Iterator<Integer> iter = basketList.get(i).iterator();
...
}
要么 :
for (HashSet<Integer> set : basketList) {
Iterator<Integer> iter = set.iterator();
...
}
你可以试试这个吗? 您可以使用iterator
方法使其变得简单。
HashSet<Integer> set1 = new HashSet<>(Arrays.asList(1, 2));
HashSet<Integer> set2 = new HashSet<>(Arrays.asList(3, 4));
List<HashSet<Integer>> list = new ArrayList<>(Arrays.asList(set1, set2));
// make iterator
Iterator<HashSet<Integer>> iterator = list.iterator();
while(iterator.hasNext()) {
// get element(HashSet) in iterator
HashSet<Integer> element = iterator.next();
for (Integer intValue : element) {
// access element in HashSet
System.out.println(intValue);
}
}
更新:您应该从
basketList
获取元素并创建一个迭代器。
像这样:
public static void settingPair() {
int size = basketList.size();
for (int i = 0; i < size; i++) {
// get the element from basketList
HashSet<Integer> element = basketList.get(i);
// create iterator
Iterator<Integer> iterator = element.iterator();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.