LinkedHashMapがあります:
LinkedHashMap<String, RecordItemElement>
与えられたキーの位置から逆方向に繰り返す必要があります。したがって、10番目のアイテムのキーが与えられた場合、ハッシュマップ9、8、7などを逆方向に繰り返す必要があります。
LinkedHashMapがあります:
LinkedHashMap<String, RecordItemElement>
与えられたキーの位置から逆方向に繰り返す必要があります。したがって、10番目のアイテムのキーが与えられた場合、ハッシュマップ9、8、7などを逆方向に繰り返す必要があります。
それを繰り返す必要はありません。ただし、キーを取り外してリストに保存すると便利です。それが indexOf() タイプの操作を行う唯一の方法です。
List<String> keyList = new ArrayList<String>(map.keySet());
// Given 10th element's key
String key = "aKey";
int idx = keyList.indexOf(key);
for ( int i = idx ; i >= 0 ; i-- )
System.out.println(map.get(keyList.get(i)));
「user22745008」ソリューションとlabdasをいくつかのジェネリックで使用すると、メソッドとして非常にきちんとしたソリューションを得ることができます:
public static <T, Q> LinkedHashMap<T, Q> reverseMap(LinkedHashMap<T, Q> toReverse)
{
LinkedHashMap<T, Q> reversedMap = new LinkedHashMap<>();
List<T> reverseOrderedKeys = new ArrayList<>(toReverse.keySet());
Collections.reverse(reverseOrderedKeys);
reverseOrderedKeys.forEach((key)->reversedMap.put(key,toReverse.get(key)));
return reversedMap;
}