Лучший способ заказать HashMap по ключу в Java?

Это первый раз, когда я должен заказатьHashMap на Яве. Мне нужно сделать это по ключу, но в моем случае ключ является объектом, поэтому мне нужно упорядочить по определенному полю. Пытаясь понять это самостоятельно, я подумал о том, чтобы перейти к следующему простому куску кода:

private HashMap<SimpleDBField, String> sortTable(HashMap<SimpleDBField, String> row){

    LinkedHashMap<SimpleDBField, String> orderedRow = new LinkedHashMap<SimpleDBField, String>();

    for(int i = 1; i <= row.size(); i ++){
        Iterator iterator = row.entrySet().iterator();

        while(iterator.hasNext()){
            Map.Entry<SimpleDBField, String> entry = (Map.Entry<SimpleDBField, String>) iterator.next();

            if(entry.getKey().getListPosition()==i){
                orderedRow.put(entry.getKey(), entry.getValue());
                break;
            }
        }
    }

    return orderedRow;
}

Предполагая, что это работает, и меня не волнует производительность, прежде чем реально ее использовать, я хотел бы знать, может ли следующий фрагмент кода быть лучше и важнее: почему?

Пример ниже источника здесь:Как отсортировать HashMap по ключу и значению в Java

public static <K extends Comparable,V extends Comparable> Map<K,V> sortByKeys(Map<K,V> map){

    List<K> keys = new LinkedList<K>(map.keySet());

    Collections.sort(keys);

    Map<K,V> sortedMap = new LinkedHashMap<K,V>();

    for(K key: keys){
        sortedMap.put(key, map.get(key));

    }

    return sortedMap;
}

Если оба не правы, как мне это сделать?

Ответы на вопрос(4)

Ваш ответ на вопрос