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;
}