Penyelesaian kepada pengecualian saiz tidak berubah koleksi Java (ImmutableSizeException)
Apabila menggunakan koleksi Java, kadangkala anda akan menghadapi pengecualian saiz tidak berubah (ImmutableSizeException). Pengecualian ini biasanya berlaku apabila cuba mengubah suai saiz koleksi, tetapi koleksi telah dipratakrifkan sebagai tidak boleh diubah. Artikel ini akan memperkenalkan beberapa penyelesaian kepada masalah ini dan memberikan contoh kod yang sepadan.
import com.google.common.collect.ImmutableList; public class ImmutableCollectionExample { public static void main(String[] args) { ImmutableList<String> names = ImmutableList.of("Alice", "Bob", "Charlie"); // 尝试修改集合大小,将会抛出UnsupportedOperationException异常 names.add("David"); } }
import java.util.ArrayList; import java.util.List; public class CopyCollectionExample { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); names.add("Charlie"); // 创建副本进行操作 List<String> updatedNames = new ArrayList<>(names); updatedNames.add("David"); // 将结果赋值给原始集合 names = updatedNames; } }
import java.util.ArrayList; import java.util.List; public class MutableCollectionExample { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); names.add("Charlie"); // 修改集合大小 names.add("David"); } }
Tidak kira penyelesaian yang anda pilih, ia harus diputuskan berdasarkan keperluan dan senario khusus anda. Jika anda hanya perlu membaca data pengumpulan tanpa mengubah suainya, koleksi tidak berubah adalah pilihan yang lebih baik. Jika saiz koleksi perlu ditukar dengan kerap, koleksi boleh ubah adalah lebih mudah. Di samping itu, kita juga mesti memberi perhatian kepada operasi koleksi dalam persekitaran berbilang benang untuk memastikan keselamatan benang.
Ringkasan:
Atas ialah kandungan terperinci Penyelesaian kepada pengecualian tidak berubah saiz koleksi Java (ImmutableSizeException). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!