Key-Value Pair並べ替え——すべてのタイプに対応しています。
科学研究では、よくキーを並べてkey(またはvalue)の正順または逆順に並べ替えることを発見しました。簡単な工具類を書きます。
1.まずKeyValue Pair類を定義し、KとVはいつも型を採用しています。どんな種類にも対応できます。後で使うために。
[c,6],[a,3],[b,2]
1.まずKeyValue Pair類を定義し、KとVはいつも型を採用しています。どんな種類にも対応できます。後で使うために。
class KeyValuePair<K extends Comparable<K>, V extends Comparable<V>> implements
Comparable<KeyValuePair<K, V>> {
K key;
V value;
public KeyValuePair(K key, V value) {
this.key = key;
this.value = value;
}
// key value
@Override
public int compareTo(KeyValuePair<K, V> o) {
return -value.compareTo(o.getValue());
}
/**
* @return the key
*/
public K getKey() {
return key;
}
/**
* @return the value
*/
public V getValue() {
return value;
}
@Override
public String toString() {
return "[" + key + "," + value + "]";
}
}
2. TreeSetの赤と黒の木の原理でKeyValuePairを並べ替えます。以下はkeyをStringタイプ、valueをIntegerタイプとし、valueの逆順に並べ替えます。コードによると次の通りです。public class KeyValuePairSort {
public static void main(String[] args) {
SortedSet<KeyValuePair<String, Integer>> ts = new TreeSet<KeyValuePair<String, Integer>>();
ts.add(new KeyValuePair<String, Integer>("a", 3));
ts.add(new KeyValuePair<String, Integer>("c", 6));
ts.add(new KeyValuePair<String, Integer>("b", 2));
System.out.println(ts);
}
}
3.運転出力は以下の通りです。[c,6],[a,3],[b,2]