Rumah >Java >javaTutorial >Penjelasan terperinci tentang penggunaan kelas koleksi dalam bahasa Java

Penjelasan terperinci tentang penggunaan kelas koleksi dalam bahasa Java

王林
王林asal
2023-06-09 22:48:061488semak imbas

Bahasa Java ialah salah satu bahasa pengaturcaraan yang paling banyak digunakan di dunia, dan kelas koleksi adalah bahagian yang sangat penting dalam bahasa Java. Dalam bahasa Java, kelas koleksi ialah bekas untuk set jenis data yang boleh menyimpan dan mengendalikan berbilang objek Objek ini boleh menjadi jenis asas, objek tersuai atau objek koleksi lain. Kelas koleksi Java disukai secara meluas oleh pengaturcara kerana kecekapan, fleksibiliti dan kemudahan penggunaannya. Artikel ini akan memperkenalkan secara terperinci cara menggunakan kelas koleksi Java.

1. Klasifikasi kelas koleksi Java

Rangka kerja koleksi Java mengandungi dua jenis kelas koleksi: satu ialah bekas objek yang biasanya disediakan melalui kelas pembungkusan, seperti ArrayList yang menghantar objek , a bekas yang membungkus jenis data asas Java dan menyediakan ciri yang tidak ada pada tatasusunan umum yang lain ialah struktur data berasaskan Peta, seperti HashMap, TreeMap, dsb., yang digunakan untuk memetakan objek utama kepada objek nilai. Kelas koleksi Java boleh dibahagikan kepada empat kategori: Senarai, Peta, Set dan Baris Gilir. Antaranya, List ialah koleksi tersusun, Map ialah koleksi perhubungan penyimpanan pasangan kunci/nilai, Set ialah koleksi elemen tidak tertib yang tidak membenarkan penduaan, dan Queue ialah koleksi elemen yang diuruskan mengikut FIFO (pertama dalam, first out) prinsip. Di bawah ini kami akan memperkenalkan ciri-ciri dan penggunaan empat jenis koleksi ini masing-masing.

2. Koleksi senarai

Koleksi senarai ialah koleksi tertib (iaitu, ia boleh diulang), yang boleh menyimpan satu set elemen dan menyusunnya dalam susunan tertentu. Terdapat tiga pelaksanaan yang biasa digunakan bagi antara muka Senarai: ArrayList, LinkedList dan Vector.

  1. ArrayList

ArrayList ialah tatasusunan dinamik yang boleh menambah dan mengurangkan saiz tatasusunan secara dinamik. Pelaksanaan dalamannya menggunakan struktur tatasusunan, jadi operasi pertanyaan adalah pantas, tetapi operasi pemasukan dan pemadaman adalah perlahan. Penggunaan ArrayList adalah serupa dengan tatasusunan, tetapi ia mempunyai fleksibiliti untuk meningkat dan mengecut secara dinamik.

  1. LinkedList

LinkedList ialah senarai terpaut dua kali, elemennya boleh dimasukkan dan dipadamkan pada bila-bila masa dan boleh menyokong operasi serentak dengan lebih baik. Operasi pertanyaan LinkedList adalah lebih perlahan, tetapi operasi sisipan dan pemadaman adalah lebih pantas. LinkedList boleh digunakan sebagai baris gilir atau timbunan.

  1. Vektor

Vektor ialah versi ArrayList yang selamat untuk benang Kecekapan pelaksanaannya lebih perlahan daripada ArrayList, jadi ia kurang digunakan dalam pembangunan sebenar. Vektor mempunyai banyak kaedah yang serupa dengan ArrayList, tetapi ia selamat untuk benang.

3. Koleksi peta

Koleksi peta ialah koleksi perhubungan storan pasangan kunci/nilai yang mempunyai kelajuan pertanyaan yang sangat pantas dan keupayaan untuk menambah dan memadam elemen. Koleksi Peta boleh menjamin bahawa kuncinya adalah unik, tetapi nilai boleh diulang. Terdapat tiga pelaksanaan yang biasa digunakan antara muka Peta: HashMap, TreeMap dan LinkedHashMap.

  1. HashMap

HashMap ialah pelaksanaan berdasarkan jadual cincang, yang boleh melaksanakan operasi sisipan dan pertanyaan dalam masa yang tetap, tetapi susunan elemen tidak pasti. Kekunci atau nilai HashMap boleh menjadi objek nol.

  1. TreeMap

TreeMap adalah berdasarkan pelaksanaan pokok merah-hitam dan boleh mengisih elemen Kerumitan masa operasi sisipan dan pertanyaannya ialah O(log N) . TreeMap memerlukan kuncinya untuk setanding, jadi ia mesti melaksanakan antara muka Sebanding atau Pembanding.

  1. LinkedHashMap

LinkedHashMap ialah varian HashMap yang mampu mengekalkan susunan sisipan elemen sambil juga mengetahui cara menggunakan rujukan lembut atau rujukan lemah dalam akses elemen pesanan. Rujukan kepada elemen yang dipadam. Kecekapan pelaksanaan LinkedHashMap adalah lebih rendah sedikit daripada HashMap.

4. Koleksi set

Koleksi set ialah koleksi tidak tertib yang tidak membenarkan unsur pendua Ia boleh digunakan untuk memproses objek dengan satu atribut. Terdapat dua pelaksanaan yang biasa digunakan antara muka Set: HashSet dan TreeSet.

  1. HashSet

HashSet dilaksanakan berdasarkan HashMap Ia boleh menyediakan operasi penyisipan dan pertanyaan elemen pantas, tetapi tidak membenarkan elemen pendua. Sama ada HashSet mempunyai pesanan tidak ditentukan, jadi susunan elemen tidak diperlukan.

  1. TreeSet

TreeSet dilaksanakan berdasarkan pokok merah-hitam dan boleh melakukan operasi sisipan dan pertanyaan tertib pada elemen. TreeSet memerlukan elemennya untuk melaksanakan antara muka Sebanding atau Pembanding untuk mencapai tujuan pengisihan.

5. Koleksi Queue

Koleksi baris gilir ialah koleksi elemen yang diuruskan mengikut prinsip FIFO (masuk dahulu, keluar dahulu) dan termasuk dua antara muka: Baris gilir dan Deque. Deque ialah baris gilir dua hujung yang dikembangkan berdasarkan Baris Gilir Ia boleh memasukkan atau memadam elemen pada permulaan dan penghujung baris gilir. Kedua-dua Queue dan Deque mempunyai dua pelaksanaan yang biasa digunakan: LinkedList dan ArrayDeque.

  1. LinkedList

LinkedList boleh digunakan sebagai koleksi Senarai, atau sebagai Queue dan Deque. Untuk Queue dan Deque, LinkedList ialah pelaksanaan berdasarkan senarai terpaut.

  1. ArrayDeque

ArrayDeque ialah pelaksanaan berasaskan tatasusunan yang boleh menambah atau mengalih keluar elemen daripada ekor dan mendapatkan elemen daripada kepala.

6. Gunakan kes kelas koleksi

Sebagai pengaturcara Java, anda mesti mahir menggunakan kelas koleksi Java untuk meningkatkan kecekapan pembangunan dan prestasi program. Di bawah ini kami mengambil ArrayList sebagai contoh untuk menunjukkan cara menggunakan kelas koleksi Java.

import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        // 创建ArrayList对象
        ArrayList<Integer> list = new ArrayList<Integer>();
        // 添加元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(1);
        System.out.println(list);
        // 删除元素
        list.remove(0);
        System.out.println(list);
        // 插入元素
        list.add(0, 4);
        System.out.println(list);
        // 获取元素
        int element = list.get(2);
        System.out.println("Element at index 2: " + element);
        // 修改元素
        list.set(2, 5);
        System.out.println(list);
        // 清空列表
        list.clear();
        System.out.println(list);
    }
}

Kod di atas menunjukkan cara mencipta objek ArrayList, menambah elemen padanya, memadamkan elemen, memasukkan elemen, mendapatkan elemen, mengubah suai elemen dan mengosongkan senarai. Dalam pembangunan sebenar, pengaturcara juga boleh menggunakan kelas koleksi Java untuk melaksanakan logik perniagaan yang lebih kompleks.

7. Ringkasan

Artikel ini menyediakan pengenalan terperinci kepada penggunaan kelas koleksi Java. Kelas pengumpulan Java ialah salah satu mata pengetahuan yang mesti dikuasai oleh pengaturcara Java dengan mahir Dalam pembangunan sebenar, ia boleh memberikan kami kaedah penyimpanan dan operasi data yang lebih cekap, fleksibel dan mudah digunakan. Apabila memilih kelas koleksi yang hendak digunakan, anda perlu membuat pilihan berdasarkan situasi sebenar untuk memastikan prestasi dan kebolehselenggaraan program. Kami berharap artikel ini dapat membantu semua orang menguasai penggunaan kelas koleksi bahasa Java.

Atas ialah kandungan terperinci Penjelasan terperinci tentang penggunaan kelas koleksi dalam bahasa Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn