/** Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*********************/package java.util;import jdk.internal.vm.annotation.Stable;/*** An immutable container for a key and a value, suitable for use* in creating and populating {@code Map} instances.** <p>This is a <a href="../lang/doc-files/ValueBased.html">value-based</a>* class; use of identity-sensitive operations (including reference equality* ({@code ==}), identity hash code, or synchronization) on instances of* {@code KeyValueHolder} may have unpredictable results and should be avoided.** @apiNote* This class is not public. Instances can be created using the* {@link Map#entry Map.entry(k, v)} factory method, which is public.** <p>This class differs from AbstractMap.SimpleImmutableEntry in the following ways:* it is not serializable, it is final, and its key and value must be non-null.** @param <K> the key type* @param <V> the value type** @see Map#ofEntries Map.ofEntries()* @since 9*/final class KeyValueHolder<K,V> implements Map.Entry<K,V> {@Stablefinal K key;@Stablefinal V value;KeyValueHolder(K k, V v) {key = Objects.requireNonNull(k);value = Objects.requireNonNull(v);}/*** Gets the key from this holder.** @return the key*/@Overridepublic K getKey() {return key;}/*** Gets the value from this holder.** @return the value*/@Overridepublic V getValue() {return value;}/*** Throws {@link UnsupportedOperationException}.** @param value ignored* @return never returns normally*/@Overridepublic V setValue(V value) {throw new UnsupportedOperationException("not supported");}/*** Compares the specified object with this entry for equality.* Returns {@code true} if the given object is also a map entry and* the two entries' keys and values are equal. Note that key and* value are non-null, so equals() can be called safely on them.*/@Overridepublic boolean equals(Object o) {if (!(o instanceof Map.Entry))return false;Map.Entry<?,?> e = (Map.Entry<?,?>)o;return key.equals(e.getKey()) && value.equals(e.getValue());}/*** Returns the hash code value for this map entry. The hash code* is {@code key.hashCode() ^ value.hashCode()}. Note that key and* value are non-null, so hashCode() can be called safely on them.*/@Overridepublic int hashCode() {return key.hashCode() ^ value.hashCode();}/*** Returns a String representation of this map entry. This* implementation returns the string representation of this* entry's key followed by the equals character ("{@code =}")* followed by the string representation of this entry's value.** @return a String representation of this map entry*/@Overridepublic String toString() {return key + "=" + value;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。