Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中集合框架迭代器的工作_Java_Collections_Iterator - Fatal编程技术网

java中集合框架迭代器的工作

java中集合框架迭代器的工作,java,collections,iterator,Java,Collections,Iterator,目标是从用户那里获取输入,在代码本身中添加一个字符串“####”,然后再次添加一些字符串。目标是打印添加“####”后的输入。 代码是: import java.util.*; public class Main { @SuppressWarnings("rawtypes") static Iterator func(ArrayList mylist) { Iterator it=mylist.iterator(); while(it.ha

目标是从用户那里获取输入,在代码本身中添加一个字符串“####”,然后再次添加一些字符串。目标是打印添加“####”后的输入。 代码是:

import java.util.*;
public class Main
{
    @SuppressWarnings("rawtypes")
    static Iterator func(ArrayList mylist)
    {
        Iterator it=mylist.iterator();
        while(it.hasNext())
        {
            Object element = it.next();
            if(element instanceof String) { 
                break;
            }
        }
        return it;
    }

    @SuppressWarnings("unchecked")
    public static void main(String []argh)
    {
        @SuppressWarnings("rawtypes")
        ArrayList mylist = new ArrayList();
        @SuppressWarnings("resource")
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        for(int i=0;i<n;i++)
        {
            mylist.add(sc.nextInt());
        }
        mylist.add("###");
        for(int i=0;i<m;i++)
        {
            mylist.add(sc.next());
        }

        @SuppressWarnings("rawtypes")
        Iterator it=func(mylist);
        while(it.hasNext())
        {
            Object element = it.next();
            System.out.println((String)element);
        }
    }
}
输出为:

我的问题是如何在这里只打印hello和java,因为while循环在第一次遇到字符串“####”(我们在代码中添加了该字符串)时中断

有人能解释一下吗

在上面的代码片段中,它将获得第一个
字符串
元素
,同时,迭代器将转到next并跳过第一个
字符串
元素


所以“####”将被忽略,因为它是第一个
String
type元素。

明白了!非常感谢!
2 2
42
10
hello
java
hello 
java
 Object element = it.next();
 if(element instanceof String) { 
    break;
 }