Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 22637|Yanıt: 1

[Kaynak] Detaylar için Java java.util.AbstractMap.SimpleImmutableEntry

[Bağlantıyı kopyala]
2021-11-10 tarihinde yayınlandı 17:39:42 | | | |
Çift veya çift, basit anahtar-değer çağrışımlarını yönetmek için kullanışlı bir yol sunar; bu özellikle, bir metoddan iki değer döndürmek istediğimizde faydalıdır. JDK, dahili sınıflarla birlikte gelir: AbstractMap.SimpleEntry ve AbstractMap.SimpleImmutableEntry


1. SimpleEntry, soyut sınıf AbstractMap'te tanımlanmıştır ve yapım yöntemi Pair'e benzerdir.

2. AbstractMap sınıfı ayrıca değişmez bir çifti temsil eden iç içe bir sınıf içerir: SimpleImmutableEntry sınıfı.

/**
     * Değişmez anahtar ve değeri koruyan bir Giriş.  Bu sınıf
     * <tt>setValue</tt> metodunu desteklemez.  Bu sınıf
     * iş parçacığı güvenli anlık görüntülerini döndüren yöntemlerde uygundur
     * anahtar-değer eşlemeleri.
     *
     * @since 1.6
     */
    public statik sınıf SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        özel statik son uzun seriVersionUID = 7138329143949025153L;

        özel son K tuşu;
        özel son V değeri;

        /**
         * Belirlenen haritadan bir eşlemeyi temsil eden bir giriş oluşturur
         * belirtilen değere anahtar.
         *
         * @param bu girişte temsil edilen anahtarı tuşla
         * @param bu girişin temsil ettiği değeri
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = anahtar;
            this.value = değer;
        }

        /**
         * Aynı eşlemeyi temsil eden bir giriş oluşturur
         * belirtilen giriş.
         *
         * @param kopyalamak için girişi
         */
        public SimpleImmutableEntry(Entry<? extend K, ? extend V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Bu girişe karşılık gelen anahtarı döndürür.
         *
         * @return bu girişe karşılık gelen anahtarı
         */
        public K getKey() {
            dönüş anahtarı;
        }

        /**
         * Bu girişe karşılık gelen değeri döndürür.
         *
         * @return bu girişe karşılık gelen değeri
         */
        public V getValue() {
            iade değeri;
        }

        /**
         * Bu girişe karşılık gelen değeri belirtilen değerle değiştirir
         * değeri (isteğe bağlı işlem).  Bu uygulama sadece
         * <tt>Desteklenmeyen OperationException</tt>, bu sınıfın uyguladığı gibi
         * <i>değişmez</i> bir harita girişi.
         *
         * @param bu girişte saklanacak yeni bir değer
         * @return (Geri dönmez)
         * @throws Her zaman desteklenmemişOperationException
         */
        public V setValue(V value) {
            yeni Desteklenmeyen OperationException() atıyor;
        }

        /**
         * Belirtilen nesneyi eşitlik için bu girdi ile karşılaştırır.
         * Dönüşler {@codetrue} olarak verilen nesne aynı zamanda bir harita girişi ise ve
         * iki giriş aynı eşlemeyi temsil eder.  Daha resmi olarak, iki
         * {@code e1} ve {@code e2} girişleri aynı eşlemeyi temsil eder
         *eğer<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Bu, {@code eşit} yönteminin doğru şekilde çalışmasını sağlar
         * {@code Map.Entry} arayüzünün farklı uygulamaları.
         *
         * @param o nesne, bu harita girişiyle eşitlik için karşılaştırılacak
         * @return {@code true} eğer belirtilen nesne bu haritaya eşitse
         *giriş
         * @see #hashCode
         */
        public boolean equals(Object o) {
            if (!( o instanceof Map.Entry))
                yanlış döndür;
            Harita.Giriş<?,?> e = (Harita.Giriş<?,?>)o;
            return eq(key, e.getKey()) && eq(value, e.getValue());
        }

        /**
         * Bu harita girişi için hash kod değerini döndürür.  Hash kodu
         * bir harita girişinin {@code e} olarak tanımlanır: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Bu, {@code e1.equals(e2)} ile şu anlamına gelir ki
         * {@code e1.hashCode()==e2.hashCode()} herhangi iki Giriş için
         * {@code e1} ve {@code e2}, genel olarak gerekenle
         * { sözleşmesi@linkObject#hashCode}.
         *
         * @return bu harita girişi için hash kod değeri
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Bu harita girişinin String temsili döndürür.  Bu
         * uygulama bu dizinin temsilini döndürür
         * giriş anahtarı ve ardından eşit karakteri ("<tt>=</tt>")
         * ardından bu giridin değerinin dizi temsili gelir.
         *
         * @return bu harita girişinin bir String temsili
         */
        public String toString() {
            return anahtarı + "=" + değer;
        }

    }

SimpleImmutableEntry, değeri değiştirmeye çalışırsa java.lang atar, setValue metodunu çağırır.DesteklenmemişOperationExceptionAnormal.



Kod:







Önceki:Java, savaş paketinin yapılandırma dosyasını değiştirir
Önümüzdeki:Docker kullanarak Elasticsearch servisini dağıtın
2021-11-11 08:48:42 tarihinde yayınlandı |
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com