Enumeration
をスローしないConcurrentModificationException
のはなぜですか?
以下のコードを参照してください。
public static void main(String[] args) {
Vector<String> v=new Vector<String>();
v.add("Amit");
v.add("Raj");
v.add("Pathak");
v.add("Sumit");
v.add("Aron");
v.add("Trek");
Enumeration<String> en=v.elements();
while(en.hasMoreElements())
{
String value=(String) en.nextElement();
System.out.println(value);
v.remove(value);
}
}
印刷するだけです:
アミット パタク アロン
なぜこのような動作です。Enumerator
それはスレッドセーフだと言えますか。
編集: Iterator を使用するとConcurrentModificationException
、シングル スレッド アプリケーションがスローされます。
public static void main(String[] args) {
Vector<String> v=new Vector<String>();
v.add("Amit");
v.add("Raj");
v.add("Pathak");
v.add("Sumit");
v.add("Aron");
v.add("Trek");
Iterator<String> it=v.iterator();
while(it.hasNext())
{
String value=(String) it.next();
System.out.println(value);
v.remove(value);
}
}
チェックしてください。