Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22637|Jawab: 1

[Sumber] Java java.util.AbstractMap.SimpleImmutableEntry untuk detailnya

[Salin tautan]
Dipaparkan pada 2021-11-10 17:39:42 | | | |
Pair, atau pair, menyediakan cara yang nyaman untuk menangani asosiasi kunci-nilai sederhana, yang sangat berguna ketika kita ingin mengembalikan dua nilai dari suatu metode. JDK dilengkapi dengan kelas internal: AbstractMap.SimpleEntry dan AbstractMap.SimpleImmutableEntry


1. SimpleEntry didefinisikan dalam kelas abstrak AbstractMap, dan metode konstruksinya mirip dengan Pair.

2. Kelas AbstractMap juga berisi kelas berlapis, yang mewakili pasangan yang tidak dapat diubah: kelas SimpleImmutableEntry.

/**
     * Entri mempertahankan kunci dan nilai yang tidak dapat diubah.  Kelas ini
     * tidak mendukung metode <tt>setValue</tt>.  Kelas ini mungkin
     * Nyaman dalam metode yang mengembalikan snapshot aman utas
     * Pemetaan nilai kunci.
     *
     * @since 1,6
     */
    kelas statis publik SimpleImmutableEntry<K,V>
        mengimplementasikan Entry<K,V>, java.io.Serializable
    {
        private static final long serialVersionUID = 7138329143949025153L;

        kunci K akhir pribadi;
        nilai V akhir pribadi;

        /**
         * Membuat entri yang mewakili pemetaan dari yang ditentukan
         * ke nilai yang ditentukan.
         *
         * @param kunci kunci yang diwakili oleh entri ini
         * @param nilai nilai yang diwakili oleh entri ini
         */
        public SimpleImmutableEntry(K key, nilai V) {
            this.key = kunci;
            this.value = nilai;
        }

        /**
         * Membuat entri yang mewakili pemetaan yang sama dengan
         * entri yang ditentukan.
         *
         * @param entri untuk disalin
         */
        public SimpleImmutableEntry(Entry<? memperluas K, ? memperluas entri V>) {
            this.key = entri.getKey();
            this.value = entry.getValue();
        }

        /**
         * Mengembalikan kunci yang sesuai dengan entri ini.
         *
         * @return kunci yang sesuai dengan entri ini
         */
        publik K getKey() {
            kunci kembali;
        }

        /**
         * Mengembalikan nilai yang sesuai dengan entri ini.
         *
         * @return nilai yang sesuai dengan entri ini
         */
        publik V getValue() {
            nilai pengembalian;
        }

        /**
         * Mengganti nilai yang sesuai dengan entri ini dengan
         * nilai (operasi opsional).  Implementasi ini hanya melemparkan
         * <tt>UnsupportedOperationException</tt>, seperti yang diterapkan kelas ini
         * Entri peta <i>yang tidak dapat diubah</i>.
         *
         * @param nilai nilai baru yang akan disimpan dalam entri ini
         * @return (Tidak kembali)
         * @throws UnsupportedOperationException selalu
         */
        publik V setValue(Nilai V) {
            lempar UnsupportedOperationException();
        }

        /**
         * Membandingkan objek yang ditentukan dengan entri ini untuk kesetaraan.
         * Mengembalikan {@codetrue} jika objek yang diberikan juga merupakan entri peta dan
         * Kedua entri mewakili pemetaan yang sama.  Lebih formal, dua
         * entri {@code e1} dan {@code e2} mewakili pemetaan yang sama
         *kalau<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().sama de(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Ini memastikan bahwa metode {@code sama dengan } berfungsi dengan baik di seluruh
         * implementasi yang berbeda dari antarmuka {@code Map.Entry}.
         *
         * @param objek o untuk dibandingkan untuk kesetaraan dengan entri peta ini
         * @return {@code true} jika objek yang ditentukan sama dengan peta ini
         *lema
         * @see #hashCode
         */
        boolean publik sama dengan (Objek o) {
            jika (!( o instancedari Map.Entry))
                mengembalikan false;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            mengembalikan eq(kunci, e.getKey()) && eq(nilai, e.getValue());
        }

        /**
         * Mengembalikan nilai kode hash untuk entri peta ini.  Kode hash
         * dari entri peta {@code e} didefinisikan menjadi: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Ini memastikan bahwa {@code e1.equals(e2)} menyiratkan bahwa
         * {@code e1.hashCode()==e2.hashCode()} untuk dua Entri
         * {@code e1} dan {@code e2}, sebagaimana disyaratkan oleh
         * kontrak {@linkObjek#hashCode}.
         *
         * @return nilai kode hash untuk entri peta ini
         * @see #equals
         */
        publik int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Mengembalikan representasi String dari entri peta ini.  Ini
         * mengembalikan representasi string dari ini
         * kunci entri diikuti dengan karakter sama dengan ("<tt>=</tt>")
         * diikuti dengan representasi string dari nilai entri ini.
         *
         * @return representasi String dari entri peta ini
         */
        publik String toString() {
            tombol return + "=" + nilai;
        }

    }

SimpleImmutableEntry melemparkan java.lang jika mencoba memodifikasi nilai, memanggil metode setValue.UnsupportedOperationExceptionGanjil.



Kode:







Mantan:Java memodifikasi file konfigurasi paket perang
Depan:Menyebarkan layanan Elasticsearch menggunakan Docker
Dipaparkan pada 2021-11-11 08:48:42 |
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com