java LinkedHashMap倒序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013066244/article/details/82761808

环境

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来倒序获取

参考地址:

LinkedHashMap 反向遍历

猜你喜欢

转载自blog.csdn.net/u013066244/article/details/82761808
今日推荐