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();。您确实需要新关键字。。您的意思是我应该通过关键字新建???谢谢您的建议。但是,为什么这样做不起作用?这是正确的,但没有回答问题。他想创建一个迭代器。您的方法可能会失败,因为他在迭代时添加了项。是的,这是真的