Если вам действительно нужно использовать set вместо Map, вы можете использовать TreeSet и как тип, используемый в объекте set use, который обертывает ключ и значение и сравнивается по ключу. Пример ниже:
package com.stackoverflow;
public class KeyValue<K extends Number, V> implements Comparable<KeyValue<K, V>> {
private final K key;
private final V value;
public KeyValue(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
@Override
public int compareTo(KeyValue<K, V> o) {
long keyValue = key.longValue();
long argKeyValue = o.key.longValue();
return (keyValue == argKeyValue) ? 0 : (keyValue < argKeyValue) ? -1 : 1;
}
@Override
public String toString() {
return key.toString() + ": " + value.toString();
}
}
И использование образца:
package com.stackoverflow;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<KeyValue<Integer, String>> keyValues = new TreeSet<KeyValue<Integer, String>>();
KeyValue<Integer, String> keyValue1 = new KeyValue<Integer, String>(2, "asd");
KeyValue<Integer, String> keyValue2 = new KeyValue<Integer, String>(102, "sfsaf");
KeyValue<Integer, String> keyValue3 = new KeyValue<Integer, String>(12, "dgs");
KeyValue<Integer, String> keyValue4 = new KeyValue<Integer, String>(222, "dsgds");
KeyValue<Integer, String> keyValue5 = new KeyValue<Integer, String>(22, "aa");
KeyValue<Integer, String> keyValue6 = new KeyValue<Integer, String>(1, "sfasaf");
KeyValue<Integer, String> keyValue7 = new KeyValue<Integer, String>(3, "sfs");
KeyValue<Integer, String> keyValue8 = new KeyValue<Integer, String>(4, "www");
keyValues.add(keyValue1);
keyValues.add(keyValue2);
keyValues.add(keyValue3);
keyValues.add(keyValue4);
keyValues.add(keyValue5);
keyValues.add(keyValue6);
keyValues.add(keyValue7);
keyValues.add(keyValue8);
for (KeyValue<Integer, String> keyValue : keyValues) {
System.out.println(keyValue);
}
}
}
возможный дубликат http://stackoverflow.com//questions/663374/java-ordered-map –
Но [ 'TreeMap'] (http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html) - это правильный класс для использования. Итерация выполняется с помощью 'for (целочисленный ключ: map.keySet()) {System.out.println (map.get (ключ)); } ' – Seelenvirtuose
@Mustafasabir' TreeMap' - это 'SortedMap'! – Seelenvirtuose