Perbedaan antara arraylist dan vektor
Kesamaan:
1. ArrayList dan Vector keduanya mewarisi kelas induk yang sama dan mengimplementasikan antarmuka yang sama.
2. Lapisan bawah diimplementasikan oleh array
3. Panjang default awal adalah 10.
Perbedaan:
1. Sinkronisasi:
Sebagian besar metode publik dalam vektor menambahkan kata kunci yang disinkronkan untuk memastikan sinkronisasi metode, yaitu, vektor-utas-aman, dan utas arraylist tidak aman.
2. Ekspansi yang berbeda
Sifat internal yang berbeda mungkin menjadi alasan untuk metode penskalaan yang berbeda.
ArrayList memiliki dua properti, Array ElementData yang menyimpan data, dan ukuran yang menyimpan jumlah catatan.
Vektor memiliki tiga properti: Array ElementData yang menyimpan data, unsur elemen yang menyimpan jumlah catatan, dan faktor kapasitas faktor ekspansi yang memperluas ukuran array.
Metode Ekstensi ArrayList
//jdk1.8.0_91private void grow (int mincapacity) {// overflow-conscious code int oldcapacity = elementData.length; int newcapacity = oldcapacity + (oldcapacity >> 1); if (newcapacity - mincapacity <0) newcapacity = mincapacity; if (newcapacity - max_array_size> 0) newcapacity = hugeCapacity (mintcapacity); // MinCapacity biasanya mendekati ukuran, jadi ini adalah win: elementData = arrays.copyof (elementData, newcapacity); }Dapat dilihat bahwa ketika kondisi ekspansi dipenuhi, ukuran array yang diperpanjang adalah 1,5 kali panjang array asli dan lebih besar dari parameter yang ditularkan.
Metode ekstensi vektor
//jdk1.8.0_91private void grow (int mincapacity) {// overflow-conscious code int oldcapacity = elementData.length; int newcapacity = oldcapacity + ((CapasityIncrement> 0)? CapasityIncrement: OldCapacity); if (newcapacity - mincapacity <0) newcapacity = mincapacity; if (newcapacity - max_array_size> 0) newcapacity = hugeCapacity (mintcapacity); elementData = arrays.copyof (elementData, newcapacity); }Dapat dilihat bahwa ketika faktor ekspansi lebih besar dari 0, panjang array baru adalah panjang array asli + faktor ekspansi, jika tidak panjang array sub-baru adalah dua kali panjang array asli. Bandingkan panjang array baru yang dihasilkan di atas dengan panjang parameter yang ditularkan, yang lebih besar adalah panjang baru akhir.
Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!