环境
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
来倒序获取
参考地址: