私はこの奇妙なバグに出くわしました。Collections.sort()
同じリストを反復処理するときに、同時変更を検出できるように、ソートされたリストを変更しないようです。コード例:
List<Integer> my_list = new ArrayList<Integer>();
my_list.add(2);
my_list.add(1);
for (Integer num : my_list) {
/*
* print list
*/
StringBuilder sb = new StringBuilder();
for (Integer i : my_list)
sb.append(i).append(",");
System.out.println("List: " + sb.toString());
/*
* sort list
*/
System.out.println("CurrentElement: " + num);
Collections.sort(my_list);
}
出力
List: 2,1,
CurrentElement: 2
List: 1,2,
CurrentElement: 2
を期待するかもしれConcurrentModificationException
ませんが、それは発生しておらず、コードは機能するはずですが機能します。