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:
|