Collections.sort()对HashMap里的键值对按照键进行排序

   如题,下面直接上代码,当然前提是有java基础。

private ArrayList<HashMap<String, Object>> layerselectList;

layerselectList = new ArrayList<HashMap<String, Object>>(8);
tempMap = new HashMap<String, Object>();
tempMap.put("nameshow", valuename);
tempMap.put("layerindex", i);
tempMap.put("tag", tag);   //派序标示

添加相关数据,使数据结构如下,即layerselectList 打印如下:

[{tag=4, nameshow=四楼, layerindex=0, isshow=true}, {tag=3, nameshow=三楼, layerindex=1, isshow=true}, {tag=1, nameshow=一楼, layerindex=2, 

isshow=true}, {tag=2, nameshow=二楼, layerindex=3, isshow=true}]

关键代码如下:

	//进行相关数据的排序
			 Collections.sort(layerselectList, new Comparator<Map<String,Object>>() {

			      @Override
			      public int compare(Map<String,Object> firstMapEntry, 
			                 Map<String,Object> secondMapEntry) {
			    		
					    int  tag1=(Integer) firstMapEntry.get("tag");
					    
					    int  tag2=(Integer) secondMapEntry.get("tag");
			        return  (tag1>tag2?1:-1);
			      }
			    });

打印layerselectList 即如下:

[{tag=1, nameshow=一楼, layerindex=2, isshow=true}, {tag=2, nameshow=二楼, layerindex=3, isshow=true}, {tag=3, nameshow=三楼, layerindex=1, 

isshow=true}, {tag=4, nameshow=四楼, layerindex=0, isshow=true}]

实现按照楼层顺序进行排序。






Java中,HashMap是一种无序的数据结构,因此不能直接对其进行排序。但是,可以通过将HashMap中的键值对转换成List,然后对List进行排序来实现对HashMap排序。 具体步骤如下: 1. 将HashMap中的键值对转换成List,可以使用HashMap中的entrySet()方法,将其转换成Set,再使用ArrayList的构造函数将其转换成List。 2. 对List进行排序,可以使用Collections类中的sort()方法,并指定排序规则。这可以使用Comparator接口的实现类来指定排序规则,也可以直接对值或进行排序。 3. 将排序后的List转换回HashMap,可以使用HashMap的构造函数,并传入排序后的List作为参数。 以下是示例代码: ```java HashMap<String, Integer> map = new HashMap<>(); map.put("c", 3); map.put("a", 1); map.put("d", 4); map.put("b", 2); List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o1.getKey().compareTo(o2.getKey()); } }); HashMap<String, Integer> sortedMap = new LinkedHashMap<>(); for (Map.Entry<String, Integer> entry : list) { sortedMap.put(entry.getKey(), entry.getValue()); } System.out.println(sortedMap); // 输出:{a=1, b=2, c=3, d=4} ``` 在示例代码中,通过将HashMap中的键值对转换成List,并使用Collections类的sort()方法对List进行排序,指定了按照的升序排序规则。最后,将排序后的List转换回HashMap。注意,这使用了LinkedHashMap,是因为HashMap是无序的,如果想保留排序结果,需要使用有序的Map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值