【发布时间】:2014-01-14 05:45:48
【问题描述】:
首先我想说我知道其他更容易和更好的循环用于这种工作,但我只是想用迭代器练习一下。所以,我正在循环一个 ArrayList,我想用迭代器在其中添加和删除元素,但是当我运行程序时,屏幕上没有输出。这就是我所拥有的:
public class Orders {
ArrayList<String> list = new ArrayList<>();
Iterator it = list.iterator();
public void addOrder(String s) {
while(it.hasNext()){
String st = (String) it.next();
if(s.equals(st)){
System.out.println("The order '"+s+"' already exists.");
}
else{
list.add(s);
System.out.println("Order '"+s+"' was added.");
}
}
}
public void deleteOrder(String s) {
while(it.hasNext()){
String st = (String) it.next();
if(s.equals(st)){
list.remove(s);
System.out.println("The order '"+s+"' was deleted succesfully.");
}
else{
System.out.println("The order '"+s+"' was not found.");
}
}
}
public void showList(){
while(it.hasNext()){
String st = (String) it.next();
System.out.println("Order: '"+st+"'. \n");
}
}
}
public class RemoveOrder {
private Orders ord;
public RemoveOrder( Orders o ) {
ord = o;
}
public void remove() {
ord.deleteOrder( "jk123" );
ord.deleteOrder( "jk125" );
ord.showList();
}
}
public class AddOrder {
private Orders ord;
public AddOrder( Orders o ) {
ord = o;
}
public void add() {
ord.addOrder( "jk123" );
ord.addOrder( "jk124" );
ord.addOrder( "jk125" );
ord.addOrder( "jk126" );
ord.showList();
}
}
public class IteratorRun implements Runnable {
Orders ord = new Orders();
AddOrder ao = new AddOrder(ord);
RemoveOrder ro = new RemoveOrder(ord);
public void run() {
try {
ao.add();
ro.remove();
} catch (Exception e) {
}
}
}
主要是:
Thread t1 = new Thread(new IteratorRun());
t1.start();
【问题讨论】:
-
那么...你有什么问题?
-
@user230757 最好使用原始的欺骗以防万一:stackoverflow.com/questions/993025/…