


Bagaimana untuk menentukan dan melaksanakan ArrayList dan senarai jujukan dalam Java
1. Jadual linear
Definisi
Jadual linear ialah struktur data yang paling asas, paling mudah dan paling biasa digunakan. Urutan terhingga, yang mengandungi n elemen data dengan ciri yang sama, dipanggil senarai linear dan merupakan sejenis struktur data.
Senarai linear biasa: senarai berjujukan, senarai terpaut, tindanan, baris gilir...
Senarai linear ialah struktur linear secara logik, iaitu, ia adalah garis lurus berterusan. Bentuk storan fizikal jadual linear biasanya merupakan susunan atau struktur senarai terpaut, tetapi ia tidak semestinya berterusan.
Ciri-ciri
Mesti ada hanya satu "elemen pertama" dalam set.
Mesti ada hanya satu "elemen terakhir" dalam set.
Kecuali elemen terakhir, semua elemen mempunyai pengganti yang unik (akibat).
Kecuali elemen pertama, semua elemen mempunyai pendahulu yang unik (antecedent).
2. Jadual jujukan
Definisi
Struktur linear biasanya disimpan dalam bentuk tatasusunan dipanggil jadual jujukan, yang menyimpan elemen data dalam fizikal dalam sel ingatan dengan alamat berturut-turut. Lengkapkan penambahan, pemadaman, penyemakan dan pengubahsuaian data pada tatasusunan.
Pelaksanaan
Mula-mula kita perlu mencipta tatasusunan untuk menyimpan data.
Nota: Kerana saya mencipta tatasusunan integer terlebih dahulu untuk kemudahan, untuk menyesuaikan diri dengan lebih baik kepada pelbagai jenis, anda boleh mencipta tatasusunan generik, yang saya tiada di sini .
Langkah seterusnya ialah melakukan pelbagai operasi pada jadual jujukan. Contohnya: CURD asas, mencetak jadual jujukan, mendapatkan panjang jadual jujukan, mengosongkan jadual jujukan, dsb.
Cetak tatasusunan
Oleh kerana ia adalah tatasusunan, hanya lintasi tatasusunan dan cetak terus
Tambah elemen baharu
Apabila menambah elemen, adalah perlu untuk mempertimbangkan sama ada tatasusunan penuh, jadi kita perlu membuat pertimbangan Jika ruang tatasusunan penuh, ia perlu dikembangkan. Selain itu, kita juga perlu menentukan sama ada jawatan pos ini sah.
Bagaimana untuk menilai sama ada ruang itu penuh
Di sini kami memudahkan kod sebagai:
Jika anda mahu Dalam kes pengembangan, selepas pengembangan selesai, kerana jadual jujukan adalah struktur berterusan, jika elemen baru ditambah pada kedudukan pos, elemen selepas kedudukan pos akan dialihkan semula mengikut urutan. Hanya dengan cara ini elemen baharu boleh ditambah.
Nota: Selepas pengembangan, kita perlu menukar saiz CAPACITY dan usedSize.
Tentukan sama ada ia mengandungi elemen
Di sini kita perlu mempertimbangkan sama ada tatasusunan kosong pada masa ini.
Selepas itu, ia masih merupakan traversal terus tatasusunan.
Mencari elemen
juga memerlukan operasi nol di sini.
Dapatkan elemen pada kedudukan pos
Mungkin terdapat situasi di mana tatasusunan kosong dan pos adalah menyalahi undang-undang, jadi pertimbangan diperlukan.
Saya membuang pengecualian secara manual di sini, saya tidak menulis apa-apa lagi.
Tukar nilai kedudukan pos
Padam operasi
Padam elemen pada titik tertentu position , anda boleh terus membiarkan elemen di belakangnya menutupinya untuk mencapai pemadaman.
Dapatkan panjang jadual jujukan
Kosongkan jadual jujukan
Operasi berikut agak mudah dan tidak akan diterangkan secara terperinci.
3. Pengenalan kepada ArrayList
:
Dalam rangka kerja koleksi, ArrayList ialah kelas biasa yang melaksanakan antara muka Senarai Gambar rajah rangka kerja khusus adalah seperti berikut:
[Penjelasan]
ArrayList melaksanakan antara muka RandomAccess, menunjukkan bahawa ArrayList menyokong akses rawak.
ArrayList melaksanakan antara muka Boleh Diklon, menunjukkan bahawa ArrayList boleh diklon.
ArrayList melaksanakan antara muka Serializable, menunjukkan bahawa ArrayList menyokong serialisasi.
Tidak seperti Vektor, ArrayList tidak selamat untuk benang dan boleh digunakan dalam satu utas Dalam berbilang benang, anda boleh memilih Vector atau CopyOnWriteArrayList.
Lapisan bawah ArrayList ialah ruang berterusan dan boleh dikembangkan secara dinamik. Ia adalah senarai jujukan jenis dinamik.
Gunakan
public static void main(String[] args) { // ArrayList创建,推荐写法 // 构造一个空的列表 List<Integer> list1 = new ArrayList<>(); // 构造一个具有10个容量的列表 List<Integer> list2 = new ArrayList<>(10); list2.add(1); list2.add(2); list2.add(3); // list2.add("hello"); // 编译失败,List<Integer>已经限定了,list2中只能存储整形元素 // list3构造好之后,与list中的元素一致 ArrayList<Integer> list3 = new ArrayList<>(list2); // 避免省略类型,否则:任意类型的元素都可以存放,使用时将是一场灾难 List list4 = new ArrayList(); list4.add("111"); list4.add(100); }
Beberapa kaedah biasa
方法 | 解释 |
boolean add(E e) | 尾插e |
void add(int index, E element) | 将 e 插入到 index 位置 |
boolean addAll(Collection extends E> c) | 将集合 c 中的元素 尾插到该集合中 |
E remove(int index) | 删除 index 位置元素并返回 |
boolean remove(Object o) | 删除遇到的第一个 o |
E get(int index) | 获取下标 index 位置元素 |
E set(int index, E element) | 将下标 index 位置元素设置为 element |
void clear() | 清空顺序表 |
boolean contains(Object o) | 判断 o 是否在线性表中 |
int indexOf(Object o) | 返回第一个 o 所在下标 |
int lastIndexOf(Object o) | 返回最后一个 o 的下标 |
List subList(int fromIndex, int toIndex) | 截取部分 list |
ArrayList traversal
Loop traversal
foreach traversal
Iterator
System.out.println("======迭代器1========="); ElementObservableListDecorator<Object> list; Iterator<String> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } System.out.println("======迭代器2========="); ListIterator<String> it2 = list.listIterator(); while (it2.hasNext()) { System.out.println(it2.next()); }
Perbezaan antara senarai jujukan dan tatasusunan:
Seperti yang dinyatakan di atas, lapisan bawah jadual jujukan boleh difahami sebagai tatasusunan, tetapi berbanding tatasusunan, ia lebih maju.
Jadual jujukan boleh berkembang dengan sendirinya;
Jadual jujukan dengan tegas membezakan antara kapasiti tatasusunan dan bilangan elemen.
Jadi tatasusunan sebenarnya ialah senarai jujukan yang tidak lengkap.
Perkara yang perlu diperhatikan dalam jadual jujukan:
Kita perlu membezakan antara dua konsep dalam jadual jujukan: kapasiti dan bilangan elemen (saiz).
Kapasiti boleh difahami sebagai saiz (panjang) tatasusunan, dan bilangan elemen ialah bilangan elemen sah yang direkodkan dalam saiz.
Dalam jadual jujukan, storan data perlu berterusan, dan tidak boleh ada "jurang" antara elemen Apabila operasi seperti sisipan dan pemadaman dilakukan, selepas operasi itu selesai, Pastikan kesinambungan senarai jujukan.
Atas ialah kandungan terperinci Bagaimana untuk menentukan dan melaksanakan ArrayList dan senarai jujukan dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual