基本上,用户提交Iterator在ArrayList中搜索的String.找到时,Iterator将删除包含String的对象.
因为这些对象中的每一个都包含两个字符串,所以我发现将这些行写成一个就很麻烦了.
Friend current = it.next();
String currently = current.getFriendCaption();
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
编辑:感谢您的所有提示回复.现在我看到作业不起作用.从另一个线程我读到,Java中的迭代器比C++中的迭代器强大得多.请问为什么在Java中使用iterator?只是为了取代"for"循环?谢谢.
一些说明:
我不介意使用两个"for"循环,但我知道Java对所有这些库都非常强大.我只是好奇是否有比两个"for"循环更好的方法.谢谢.
嗨,
我一直在使用C++,但我是Java的新手,所以请耐心等待.我尝试使用两个迭代器遍历ArrayList.第一个迭代器遍历列表,第二个迭代器从第一个迭代器指向的位置开始,一直到列表的末尾.以下代码是我想要做的(虽然可能无效):
.......; //initialize aList here ......
Iterator aItr = aList.iterator();
while(aItr.hasNext()){
int a = aItr.next();
Iterator bItr = aItr; //-----> is it valid? Any bad consequence?
while (bItr.hasNext()){
............; //do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
将一个迭代器分配给另一个迭代器是否有效?如果没有,那么做我想做的最好的方法是什么?谢谢.
我知道它在C++中有效,但对Java不确定,我搜索了很多,但所有结果都使用迭代器来打印一些东西.非常感谢您的帮助.
我需要编写一个简单的函数来删除List包含该类对象的所有条目Elem.我写了这个函数removeAllElements,但是如果它的大小List<Elem>大于1 则它不起作用.
public class Test {
public static void main(String[] args) {
Work w = new Work();
w.addElement(new Elem("a",new Integer[]{1,2,3}));
w.addElement(new Elem("b",new Integer[]{4,5,6}));
w.removeAllElements(); // It does not work for me.
}
}
public class Work {
private List<Elem> elements = new ArrayList<Elem>();
public void addElement(Elem e) {
this.elements.add(e);
}
public void removeAllElements() {
Iterator itr = this.elements.iterator();
while(itr.hasNext()) {
Object e = itr.next();
this.elements.remove(e);
}
}
}
public class Elem { …Run Code Online (Sandbox Code Playgroud)