Java 如何从列表中生成迭代器<;HashSet<;整数>&燃气轮机;收集

Java 如何从列表中生成迭代器<;HashSet<;整数>&燃气轮机;收集,java,Java,我试图使迭代器成为List=new ArrayList() 然而,我一直在跌倒 这就是我尝试的迭代器Iterator Iterator=new list.Iterator() 请有人帮帮我:( 如何创建该集合的迭代器 这是代码的一部分 public class Test { private static List<HashSet<Integer>> basketList = new ArrayList<>(); private static Map<In

我试图使迭代器成为
List=new ArrayList()

然而,我一直在跌倒

这就是我尝试的迭代器
Iterator 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
    }
}
公共类测试{
private static List basketList=new ArrayList();
private static Map=new HashMap();
公共静态void settingBasket(字符串fname)引发FileNotFoundException{
扫描仪扫描=新扫描仪(新文件(fname));
int n=Integer.parseInt(scan.next());
迭代器iter=basketList.Iterator();//错误

对于(int i=0;i,您可以使用嵌套循环对列表中的集合进行交互,如下所示:

for (HashSet<Integer> set : basketList) {
       for (Integer i : set) {
            System.out.println(i);
        }
}
for (int i = 0 ; i < basketList.size(); i++) {
      Iterator<Integer> iter = basketList.get(i).iterator(); 
      ...
}
for(HashSet:basketList){
for(整数i:set){
系统输出打印LN(i);
}
}
或者,如果您希望列表中的每个集合都有一个迭代器,您可以按如下操作:

for (HashSet<Integer> set : basketList) {
       for (Integer i : set) {
            System.out.println(i);
        }
}
for (int i = 0 ; i < basketList.size(); i++) {
      Iterator<Integer> iter = basketList.get(i).iterator(); 
      ...
}
for(int i=0;i
或:

for(HashSet:basketList){
迭代器iter=set.Iterator();
...
}

您能试试这个吗?您可以通过使用
迭代器
方法使它变得简单

HashSet set1=新的HashSet(Arrays.asList(1,2));
HashSet set2=新的HashSet(Arrays.asList(3,4));
List List=newarraylist(Arrays.asList(set1,set2));
//生成迭代器
迭代器迭代器=list.Iterator();
while(iterator.hasNext()){
//在迭代器中获取元素(HashSet)
HashSet元素=迭代器.next();
for(整数值:元素){
//HashSet中的access元素
System.out.println(intValue);
}
}
更新:您应该从
basketList
获取元素并创建迭代器

像这样:

公共静态无效设置对(){
int size=basketList.size();
对于(int i=0;i
你打算用这个迭代器做什么?迭代器it=list.iterator()有什么问题?
?我想引用集合中的数据。简单使用迭代器iterator=list.iterator();。您确实需要新关键字。。您的意思是我应该通过关键字新建???谢谢您的建议。但是,为什么这样做不起作用?这是正确的,但没有回答问题。他想创建一个迭代器。您的方法可能会失败,因为他在迭代时添加了项。是的,这是真的