Rumah  >  Soal Jawab  >  teks badan

java - Mengapa mengalih keluar elemen terakhir dalam setiap laporan ralat?

public static void main(String[] args) {

        List<String> a = new ArrayList<String>();
            
        a.add("1");
        a.add("2");
        a.add("23");
        for (String temp : a) {
            if ("23".equals(temp)) {
                a.remove(temp);
            }
        }
        System.out.println(a);
    }

Pengecualian dalam utas "utama" java.util.ConcurrentModificationException
di java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
di java.util.ArrayList$Itr.next(ArrayList.java:851)
wan.ForEach.main(ForEach.java:22)

PHP中文网PHP中文网2687 hari yang lalu839

membalas semua(5)saya akan balas

  • 大家讲道理

    大家讲道理2017-05-17 10:06:40

    foreach是通过迭代器来实现的,使用迭代器遍历元素时,容器不能试图改变容器的结构,如remove、add操作会抛出异常; 可以使用迭代器的removeKaedah untuk memadam elemen.

    balas
    0
  • 迷茫

    迷茫2017-05-17 10:06:40

    http://tyrion.iteye.com/blog/...

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-17 10:06:40

    Orang di atas menyatakannya dengan sangat jelas. Di sini saya akan memberitahu anda dua penyelesaian mudah
    1 pemadaman Iterator
    2. Salin senarai untuk melintasi, dan kemudian kendalikan senarai asal.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-17 10:06:40

    Apa yang dikatakan di tingkat atas adalah sangat rasmi, secara terang-terangan, dalam kaedah for(Object obj:list), anda tidak boleh memanggil kaedah alih keluar senarai untuk memadam elemen, jika tidak pengecualian akan dilemparkan, kerana Iterator. memerlukan struktur tertentu, jadi terdapat dua cara untuk memadamnya Satu ialah menyalin senarai dan mengalih keluar elemen dalam senarai lama dengan menggelung senarai baharu, dan satu lagi adalah menggunakan untuk(int i; i<count; i++. ) Gelung dalam borang ini, supaya anda boleh memadamkannya melalui kursor. Hanya berhati-hati untuk tidak melintasi sempadan subskrip tatasusunan.

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-17 10:06:40

    Apabila anda mengira telur, jika seseorang secara rahsia memasukkan telur ke dalam bakul anda atau mengambil telur, ia akan menyebabkan anda tersalah mengira Melainkan anda mengambil atau mengambil telur itu sendiri, anda boleh mengingati prinsip yang sama dalam program

    balas
    0
  • Batalbalas