orderID = 542に一致する単一の要素を削除したかったのですが、このプログラムはそのリストから2つの要素を削除しています。実際のプログラムでは、配列リストを反復処理し、関数を呼び出して、その要素が削除されるかどうかを確認します。リストとその関数は、リストから要素を削除することを想定しています
package testMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class TestHashMap {
static ArrayList<LimitOrder> a = new ArrayList<>();
public static void main(String args[]) {
create();
}
public static void create() {
LimitOrder l1 = new LimitOrder(1, 100, "145");
LimitOrder l2 = new LimitOrder(1, 100, "542");
LimitOrder l3 = new LimitOrder(1, 100, "355");
a.add(0, l1);
a.add(1, l2);
a.add(2, l3);
Iterator<LimitOrder> i = a.iterator();
while (i.hasNext()) {
boolean toremove = false;
LimitOrder l = i.next();
toremove=remove();
if (toremove == true)
{
System.out.println("Removed "+l.orderID);
i.remove();
}
}
}
public static boolean remove() {
boolean flag = false;
Iterator<LimitOrder> i = a.iterator();
while (i.hasNext()) {
LimitOrder l = i.next();
if (l.orderID.equals("542")) {
flag = true;
}
}
return flag;
}
}
私を助けてください