Handy class for keeping a key+value in a sorted list or other set-like
circumstance. git-svn-id: https://samskivert.googlecode.com/svn/trunk@1059 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// $Id: KeyValue.java,v 1.1 2003/02/27 00:43:32 mdb Exp $
|
||||
|
||||
package com.samskivert.util;
|
||||
|
||||
/**
|
||||
* Used to wrap a key/value pair into an object that behaves like the key
|
||||
* but holds on to the value. This might be used to maintain a list of
|
||||
* objects sorted by some unrelated key in a {@link SortableArrayList}.
|
||||
* For example:
|
||||
*
|
||||
* <pre>
|
||||
* SortableArrayList list = new SortableArrayList();
|
||||
* Integer key = new Integer(4);
|
||||
* Object value = ...;
|
||||
* KeyValue kval = new KeyValue(key, value);
|
||||
* list.insertSorted(kval);
|
||||
* // ...
|
||||
* Integer key = new Integer(4);
|
||||
* int oidx = list.indexOf(key);
|
||||
* Object value = (oidx == -1) ? null : list.get(oidx);
|
||||
* </pre>
|
||||
*/
|
||||
public class KeyValue
|
||||
implements Comparable
|
||||
{
|
||||
/** The key in this key/value pair. */
|
||||
public Comparable key;
|
||||
|
||||
/** The value in this key/value pair. */
|
||||
public Object value;
|
||||
|
||||
/**
|
||||
* Creates a key/value pair with the specified key and value.
|
||||
*/
|
||||
public KeyValue (Comparable key, Object value)
|
||||
{
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
public boolean equals (Object other)
|
||||
{
|
||||
if (other instanceof KeyValue) {
|
||||
return key.equals(((KeyValue)other).key);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
public int hashCode ()
|
||||
{
|
||||
return key.hashCode();
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
public int compareTo (Object other)
|
||||
{
|
||||
if (other instanceof KeyValue) {
|
||||
return key.compareTo(((KeyValue)other).key);
|
||||
} else {
|
||||
return getClass().getName().compareTo(other.getClass().getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user