"A pair containing a _key_ and an associated value called the _item_. Used primarily to represent the elements of a [[Map]]. The type `Entry<Key,Item>` may be abbreviated `Key->Item`. An instance of `Entry` may be constructed using the `->` operator: String->Person entry = person.name->person;" by ("Gavin") tagged("Collections") shared final serializable class Entry<out Key,out Item>(key, item) extends Object() given Key satisfies Object { "The key used to access the entry." shared Key key; "The item associated with the key." shared Item item; "A pair (2 element tuple) with the key and item of this entry. For any `entry`: entry.pair == [entry.key,entry.item]" shared [Key, Item] pair => [key, item]; "An `Entry` with the key and item of this entry if this entry's item is non-null, or `null` otherwise." since("1.2.0") shared <Key->Item&Object>? coalesced => if (exists item) then key->item else null; "Determines if this entry is equal to the given entry. Two entries are equal if they have the same key and the same item. - The keys are considered the same if they are equal, in the sense of [[value equality|Object.equals]]. - Two items are considered the same if they are both null or if neither is null and they are equal." shared actual Boolean equals(Object that) { if (is Entry<Object,Anything> that) { if (this.key!=that.key) { return false; } if (exists thisItem = this.item, exists thatItem = that.item) { return thisItem==thatItem; } else { return !this.item exists && !that.item exists; } } else { return false; } } shared actual Integer hash => (31 + key.hash) * 31 + (item?.hash else 0); "A description of the entry in the form `key->item`. If [[item]] is `null`, its string representation is the string `\"<null>\"`." shared actual String string => "``key``->``stringify(item)``"; }