Rumah > Java > javaTutorial > teks badan

Penggunaan antara muka Peta dalam Java dan ringkasan mata pengetahuan temu bual

WBOY
Lepaskan: 2022-07-20 20:42:14
ke hadapan
1539 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang java Ia terutamanya mengatur penggunaan antara muka Peta dan soalan berkaitan tentang titik pengetahuan temu bual, termasuk ciri storan antara muka Peta, kelas pelaksanaan biasa, Mari kita lihat. pada kaedah penciptaan, kaedah biasa, dsb., saya harap ia akan membantu semua orang.

Penggunaan antara muka Peta dalam Java dan ringkasan mata pengetahuan temu bual

Pembelajaran yang disyorkan: "tutorial video java"

Antara muka peta

Ciri storan

  • Disimpan dalam bentuk kunci (kunci) nilai (nilai) pasangan

  • Kunci tidak tertib, tiada subskrip dan elemen tidak boleh diulang

  • Nilai tidak tertib, tiada subskrip dan elemen boleh diulang

Kelas pelaksanaan biasa

  1. HashMap
    • JDK1.2 pelaksanaan jadual cincang asas adalah selamat untuk benang dan sangat cekap
  2. LinkedHashMap
    • JDK1.2 ialah subkelas HashMap Dasar pelaksanaan jadual cincang adalah selamat untuk benang dan sangat cekap
  3. TreeMap.
    • JDK1.2 ialah kelas pelaksanaan SortedMap Pelaksanaan pokok merah-hitam asas adalah tidak selamat dan sangat cekap
  4. HashTable.
    • Pelaksanaan jadual cincang asas JDK1.0 adalah selamat untuk benang dan tidak cekap
  5. Properties
    • JDK1.0 ialah subkelas HashTable Jadual cincang asas adalah selamat untuk benang dan tidak cekap

Kaedah penciptaan

    Gunakan polimorfisme

Map<键的泛型,值的泛型> 集合名=new 实现类名<键的泛型,值的泛型>();

petua: Pasangan nilai kunci ialah elemen

Lazimnya kaedah yang digunakan

  • : Tambahkan pasangan nilai kunci pada penghujung koleksi 值 put(键,值)

      Jika kunci sudah wujud, gantikan nilai
  • : Kosongkan elemen koleksi void clear()

  • : Tentukan sama ada kunci tertentu wujud dalam koleksi boolean containsKey(键)

  • : Tentukan sama ada nilai tertentu wujud dalam setboolean containsValue(值)

  • : Dapatkan nilai yang sepadan dengan kunci值 get(键)

  • : Tentukan sama ada kandungan koleksi kosong dan tidak boleh menilai nilai nol boolean isEmpty()

  • : Tambahkan kandungan koleksi Peta yang ditentukan pada akhir koleksi semasa void putAll(Map的集合名)

  • : Keluarkan pasangan nilai kunci yang sepadan dengan kunci值 remove(键)

  • : Dapatkan nombor pasangan nilai kunci dalam koleksiint size()

Contoh kod:

public class Test {
    public static void main(String[] args) {
        //数字-String   1 - 一   1 - yi
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "一");
        map.put(111, "yiyiyi");
        map.put(666, "liuliuliu");
        map.put(111, "一一一");

        System.out.println(map.containsKey(678));//f
        System.out.println(map.containsValue("yiyiyi"));//t

        System.out.println(map.get(111));

        map.remove(666);
        System.out.println(map.get(666));

        System.out.println(map.size());//2
    }}
Salin selepas log masuk
Kaedah traversal

    1 ,
  • keySet() get()
      Mula-mula dapatkan semua kunci, kemudian lintasi kekunci untuk mendapatkan semua nilai
    • Tetapkan Dapatkan semua kunci yang disimpan dalam koleksi Set dan kembalikan
        //获取所有键
        Set<键的泛型> set=集合名.keySet();
        //遍历所有键
        set.forEach(
            o-> 
            //o就代表当前正在被遍历的键
            //通过集合名.get(o)可以得到对应的值
        );如:		Map<Integer, String> map = new HashMap<>();
        map.put(123, "yiersan");
        map.put(234, "ersansi");
        map.put(456, "siwuliu");
        map.put(999, "jiujiujiu");
        Set<Integer> set=map.keySet();
        set.forEach(o-> System.out.println("键:"+o+",值:"+map.get(o)));
Salin selepas log masuk
    2
  • Dapatkan semua nilai secara langsung
    • Koleksi Dapatkan semua nilai yang disimpan dalam Koleksi dan kembalikan
3
Collection<值的泛型> coll = 集合名.values();coll.forEach(v-> v就代表当前的值);如:		Collection<String> coll = map.values();
        coll.forEach(v-> System.out.println(v));
Salin selepas log masuk
entrySet()
  • Dapatkan nilai kunci dan lintasi objek
    • Tetapkan semua objek pasangan nilai kunci yang disimpan dalam koleksi Tetapkan dan kembalikan
    • Tetapkan< kunci jenis Generik, jenis nilai> Objek pasangan nilai>
    • getKey(): Dapatkan kunci dalam objek Entry
    • getValue(): Dapatkan nilai dalam objek Entry
4
        //获取键值对对象集合
        Set<Map.Entry<键的泛型,值的泛型>> set2=集合名.entrySet();
        for (Map.Entry entry : set2) {
            //通过entry.getKey()获取键
            //通过entry.getValue()获取值
        }如:        Set<Map.Entry<键的泛型,值的泛型>> set2=集合名.entrySet();
        for (Map.Entry entry : set2) {
            System.out.println("键:"+entry.getKey()+",值:"+entry.getValue())
        }
        System.out.println("lambda自遍历:");
        set2.forEach(entry-> System.out.println("键:"+entry.getKey()+",值:"+entry.getValue()));
Salin selepas log masuk
    JDK8.0
    • Penggunaan kelas pelaksanaan yang berbeza
        集合名.forEach(new BiConsumer<键的泛型, 值的泛型>() {
            @Override
            public void accept(键的泛型 i, 值的泛型 s) {
                //i代表键
                //s代表值
            }
        });
        System.out.println("lambda简化自遍历:");
        map.forEach((k,v)-> k代表键,v代表值);如:
		map.forEach(new BiConsumer<Integer, String>() {
            @Override
            public void accept(Integer i, String s) {
                System.out.println("键:"+i+",值:"+s);
            }
        });
        System.out.println("lambda简化自遍历:");
        map.forEach((k,v)-> System.out.println("键:"+k+",值:"+v));
Salin selepas log masuk

boleh menyimpan null Nilai, kunci boleh menyimpan 0-1 null, nilai boleh menyimpan 0-n null

  • HashMap boleh memastikan susunan deposit dan pengeluaran yang sama

  • LinkedHashMapBoleh diisih dalam tertib menaik secara lalai mengikut kekunci

  • Tidak boleh mengisih null secara lalai

    TreeMapJika kunci ialah jenis tersuai, anda mesti menetapkan pengisihan peraturan dalam cara yang sama TreeSet adalah konsisten

    • tidak boleh menyimpan nilai nol
  • HashTableKunci dan nilai ​​mestilah daripada jenis String

  • Polymorphism tidak disyorkan untuk penciptaan

    PropertiesGenerik tidak boleh diisytiharkan

    • Mata pengetahuan tambahan untuk pengumpulan temu bual

ialah koleksi

dengan kunci sahaja dan tiada nilai
  • SetPanjang tatasusunan asas ialah Map

  • tatasusunan Faktor pemuatan ialah

    Apabila penggunaan bit tatasusunan mencapai 75%, tatasusunan akan dikembangkan dalam kaedah 16 Panjang pengembangan ialah panjang asal

    , dan panjang setiap tatasusunan
  • yang dikembangkan ialah 16
  • Mengapa Set atau Peta menyimpan nilai dari kecil ke besar?

    • Apabila nilai yang disimpan terlalu kecil, nilai integer itu sendiri ialah subskrip simpanannya, dan subskrip adalah dari kecil ke besar, jadi nilai itu juga disimpan dari kecil ke besar
  • Pokok merah-hitam menggunakan kaedah carian binari, yang dicirikan oleh kecekapan pertanyaan pantas

  • Pokok merah-hitam: Gunakan nilai kod cincang sebagai kriteria Jika nilai kod cincang lebih besar daripada elemen semasa, simpannya di sebelah kanan nilai lebih kecil daripada elemen semasa, simpannya di sebelah kiri

  • Kaedah carian binari: Dicirikan dengan mengunci separuh daripada data pada satu masa

  • Apabila panjang senarai terpaut dalam tatasusunan jadual cincang mencapai 8 Apabila, ia akan menyusun semula elemen senarai terpaut dan membuka pokok merah-hitam

Pembelajaran yang disyorkan: "tutorial video java "

Atas ialah kandungan terperinci Penggunaan antara muka Peta dalam Java dan ringkasan mata pengetahuan temu bual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan