Rumah  >  Artikel  >  Java  >  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?

王林
王林ke hadapan
2023-04-19 19:49:291454semak imbas

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]
  • 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]

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

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam