Arrays.asList və normal array siyahısı arasındakı fərq nədir?


cavab 1:
  1. Əvvəlcə bunun nə etdiyini görək: Arrays.asList (ia) Bir sıra ia istifadə edir və orijinal massivi siyahı olaraq mövcud hala gətirərək Siyahı tətbiq edən bir sarğı yaradır. Heç bir şey kopyalanmır və hər şey yaradılır, yalnız bir sarğı obyekti var. Siyahı sarğıdakı əməliyyatlar orijinal massivə yayılır. Bu o deməkdir ki, siyahı bandı qarışdırıldıqda orijinal massiv də qarışdırılır. Bir elementin üstünə yazdığınız zaman orijinal massivdə və s. Üzərinə yazılır. Əlbəttə, sarğıdakı bəzi siyahı əməliyyatlarına icazə verilmir, məsələn B. Əlavə etmək Əgər siyahıdan elementləri silirsinizsə, yalnız maddələri oxuya və ya yenidən yaza bilərsiniz. Qeyd edək ki, siyahı bandlayıcısı ArrayList'i genişləndirmir - fərqli bir obyekt növüdür. ArrayListlərin öz elementlərini saxlaya biləcəyi və daxili serialların ölçüsünü dəyişdirə biləcəyi və s. Sarmalayanın öz daxili massivi yoxdur, yalnız əməliyyatları təyin olunmuş array əlinə ötürür, bundan sonra yeni ArrayList (Arrays.asList (ia)) kimi yeni bir massiv yaradırsansa, tam olan yeni ArrayList yaradın. orijinalın müstəqil surəti. Arrays.asList ilə buradakı sarğı yaratsan da, yalnız yeni ArrayListin yaradılması zamanı istifadə olunur və sonra zibil ilə toplanır. Bu yeni ArrayListin quruluşu orijinal serialdan tamamilə müstəqildir. Eyni elementləri ehtiva edir (həm orijinal massiv, həm də bu yeni ArrayList yaddaşdakı eyni tamlara istinad edir), lakin istinadları ehtiva edən yeni bir daxili massiv yaradır. Buna görə qarışdırırsınızsa, əlavə etsəniz, çıxararsanız və s., Orijinal sıra dəyişməz qalır.