1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package net.sf.magicproject.tools;
21
22 /***
23 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
24 * @param <K>
25 * key
26 * @param <V>
27 * value
28 * @since 0.80
29 */
30 public class Pair<K extends Comparable<K>, V> implements Comparable<Pair<K, V>> {
31
32 /***
33 * The stored string instance. (key)
34 */
35 public K key;
36
37 /***
38 * The stored string instance. (value)
39 */
40 public V value;
41
42 /***
43 * Creates a new instance of this class <br>
44 *
45 * @param key
46 * @param value
47 */
48 public Pair(K key, V value) {
49 this.key = key;
50 this.value = value;
51 }
52
53 public int compareTo(Pair<K, V> arg0) {
54 return key.compareTo(arg0.key);
55 }
56
57 @Override
58 public boolean equals(Object arg0) {
59 if (arg0 instanceof String) {
60 return key.toString().equals(arg0);
61 } else if (arg0 instanceof Pair) {
62 Pair<?, ?> pair = (Pair) arg0;
63 return key.equals(pair.key);
64 }
65 return false;
66 }
67
68 @Override
69 public String toString() {
70 return "{" + key + ":" + value + "}";
71 }
72
73 @Override
74 public int hashCode() {
75 return key.hashCode();
76 }
77 }