java LinkedHashMap倒序
阿新 • • 發佈:2019-01-07
環境
java:1.7
前言
今天一塊業務需要將LinkedHashMap
結果集合進行倒序;
而java
本身對這個類是沒有現成反轉的方法的;
ListIterator
我們需要藉助ListIterator
類來反轉;
比如 現在有個LinkedHashMap<String, Map<String, Object>> result
這麼一個結果集合;
具體寫法:
//新的結果集合 result是傳進來的
LinkedHashMap<String, Map<String, Object>> linkResult = new LinkedHashMap< >();
ListIterator<Entry<String, Map<String, Object>>> iterator =
new ArrayList<Map.Entry<String, Map<String,Object>>>(result.entrySet()).listIterator(result.size());
while(iterator.hasPrevious()){
Entry<String, Map<String, Object>> previous = iterator. previous();
String key = previous.getKey();
Map<String, Object> value = previous.getValue();
linkResult.put(key, value);
}
result.clear();
result.putAll(linkResult);
分解來看:
1、利用ArrayList
來建立陣列,其值就是result.entrySet()
;
2、其相關泛型用Map.Entry<K, V>
3、利用ArrayList
的方法listIterator()
返回一個指定長度的ListIterator
4、最後利用遊標中的
hasPrevious
和previous
來倒序獲取
參考地址: