package DataStructures.Heaps;import java.lang.Double;import java.lang.Object;/*** Class for heap elements.<br>* <p>A heap element contains two attributes: a key which will be used to build the tree (int* or double, either primitive type or object) and any kind of IMMUTABLE object the user sees fit* to carry any information he/she likes. Be aware that the use of a mutable object might* jeopardize the integrity of this information. </p>** @author Nicolas Renard*/public class HeapElement {private final double key;private final Object additionalInfo;// Constructors/*** @param key : a number of primitive type 'double'* @param info : any kind of IMMUTABLE object. May be null, since the purpose is only to carry* additional information of use for the user*/public HeapElement(double key, Object info) {this.key = key;this.additionalInfo = info;}/*** @param key : a number of primitive type 'int'* @param info : any kind of IMMUTABLE object. May be null, since the purpose is only to carry* additional information of use for the user*/public HeapElement(int key, Object info) {this.key = key;this.additionalInfo = info;}/*** @param key : a number of object type 'Integer'* @param info : any kind of IMMUTABLE object. May be null, since the purpose is only to carry* additional information of use for the user*/public HeapElement(Integer key, Object info) {this.key = key;this.additionalInfo = info;}/*** @param key : a number of object type 'Double'* @param info : any kind of IMMUTABLE object. May be null, since the purpose is only to carry* additional information of use for the user*/public HeapElement(Double key, Object info) {this.key = key;this.additionalInfo = info;}/*** @param key : a number of primitive type 'double'*/public HeapElement(double key) {this.key = key;this.additionalInfo = null;}/*** @param key : a number of primitive type 'int'*/public HeapElement(int key) {this.key = key;this.additionalInfo = null;}/*** @param key : a number of object type 'Integer'*/public HeapElement(Integer key) {this.key = key;this.additionalInfo = null;}/*** @param key : a number of object type 'Double'*/public HeapElement(Double key) {this.key = key;this.additionalInfo = null;}// Getters/*** @return the object containing the additional info provided by the user.*/public Object getInfo() {return additionalInfo;}/*** @return the key value of the element*/public double getKey() {return key;}// Overridden object methodspublic String toString() {return "Key: " + key + " - " + additionalInfo.toString();}/*** @param otherHeapElement* @return true if the keys on both elements are identical and the additional info objects* are identical.*/@Overridepublic boolean equals(Object o) {if (o != null) {if (!(o instanceof HeapElement)) return false;HeapElement otherHeapElement = (HeapElement) o;return (this.key == otherHeapElement.key) && (this.additionalInfo.equals(otherHeapElement.additionalInfo));}return false;}@Overridepublic int hashCode() {int result = 0;result = 31*result + (int) key;result = 31*result + (additionalInfo != null ? additionalInfo.hashCode() : 0);return result;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。