1. 程式人生 > >java LinkedHashMap倒序

java LinkedHashMap倒序

環境

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、最後利用遊標中的hasPreviousprevious來倒序獲取

參考地址: