Rumah > Java > javaTutorial > Apakah perbezaan antara kaedah yang ditetapkan dan kaedah tambah dalam Senarai dalam java?

Apakah perbezaan antara kaedah yang ditetapkan dan kaedah tambah dalam Senarai dalam java?

王林
Lepaskan: 2023-04-19 19:49:29
ke hadapan
1473 orang telah melayarinya

Prekata

Terdapat dua kaedah yang hampir sama dalam Senarai antara muka koleksi yang biasa digunakan dalam Java:

E set(int index, E element);

void add(int index, E element);

Kedua-dua kaedah memasukkan elemen tertentu pada kedudukan tertentu dalam koleksi Jadi apakah perbezaan antara kedua-dua kaedah ini? Seterusnya, mari kita lihat perbezaan antara kedua-dua kaedah ini melalui ArrayList, pelaksanaan koleksi yang biasa digunakan kami

Persamaan

Pertama, mari kita lihat persamaan antara kedua-dua kaedah ini dalam ArrayList

Mereka akan memasukkan elemen baharu pada kedudukan koleksi yang ditentukan, seperti contoh berikut:

#在集合的第2位插入一个 F
# 通过add方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.add(2, "F");
        System.out.println(list);
        
#运行结果:  [A, B, F, C]

#通过set方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.set(2, "F");
        System.out.println(list);
#运行结果: [A, B, F]
Salin selepas log masuk
Salin selepas log masuk
  • Elemen dalam dua kaedah di atas bukan dibenarkan menjadi null, jika Jika ia adalah null, NullPointerException akan dibuang

  • Jika kelas yang sepadan dengan elemen dalam dua kaedah di atas tidak boleh disimpan dalam koleksi, ClassCastException akan dibuang

  • Jika jenis yang sepadan dengan elemen dalam dua kaedah di atas tidak boleh disimpan dalam koleksi, IllegalArgumentException akan dilemparkan

Perbezaan

Perbezaan pertama Seperti yang dapat dilihat daripada contoh di atas, kaedah tambah memasukkan nilai baharu pada kedudukan yang ditentukan, dan kemudian menggerakkan elemen
pada kedudukan asal dan semua elemen selepas kedudukan asal satu kedudukan ke belakang, manakala kaedah yang ditetapkan secara langsung menimpa Elemen asal

#在集合的第2位插入一个 F
# 通过add方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.add(2, "F");
        System.out.println(list);
        
#运行结果:  [A, B, F, C]

#通过set方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.set(2, "F");
        System.out.println(list);
#运行结果: [A, B, F]
Salin selepas log masuk
Salin selepas log masuk

Julat nilai kaedah tambah untuk indeks ialah 0<= indeks <= saiz(), yang bermaksud kaedah tambah boleh tambah elemen lain selepas elemen terakhir koleksi semasa Elemen baru julat nilai kaedah yang ditetapkan untuk indeks ialah 0< julat tidak boleh melebihi julat elemen koleksi semasa

#通过add在当前集合的第四个位置插入F
 List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);
        list.add(3, "F");
        System.out.println(list);
        
#运行结果: [A, B, C, F]

#通过set在当前集合的第四个位置插入F
 List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);
        list.set(3, "F");
        System.out.println(list);
        
#运行结果: 抛出NullPointerException
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah perbezaan antara kaedah yang ditetapkan dan kaedah tambah dalam Senarai dalam java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan