Android Map根据键或者值进行排序

在解析JSON数据的时候,就常会解析到JsonObject,而jsonObject是无序的,但是有想让他变的有序,就会在每个JsonObject中加一个属性,sort,然后根据sort值的大小进行排序

这里简化为map根据或值进行排序

1.先往一个map集合里加入键值对

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("文具", 1);
map.put("饮料", 5);
map.put("泡面", 3);
map.put("饼干", 2);

2.通过方法map.Entry<String, Integer>把这个map加入到一个list集合中

ArrayList<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(
				map.entrySet());

3.进行排序

// 排序
		Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
			public int compare(Map.Entry<String, Integer> o1,
					Map.Entry<String, Integer> o2) {
				System.out.println(o2.getValue()+"---"+o1.getValue());
                                 //两个数据中的值进行相比较,从大到小进行排序
                                  return (o2.getValue() - o1.getValue());

			}
		});

4.排序后的结果

// 排序后
		for (int i = 0; i < infoIds.size(); i++) {
			String id = infoIds.get(i).toString();
			System.out.println(id);
		}

打印出来的结果为

饮料=5

泡面=3

饼干=2

文具=1

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-30 19:17:32

Android Map根据键或者值进行排序的相关文章

对list中map中的key值进行排序

//对时间戳进行排序 获取最新的mapList<Map<String, Object>> dateList = new ArrayList<Map<String, Object>>(); Map<String, Object> paramsValue = new HashMap<String, Object>(); paramsValue.put("userId", user.getId()); List<S

java map 根据 map的value值进行排序

1 //根据销量排行查询 2 public void queryGoodsByHotCount(){ 3 //将map集合键和值封装到entry对象中 然后转换成set集合 4 Set<Entry<Integer,Goods>>setGoods=mapGoods.entrySet(); 5 //将set集合转成list集合 6 List<Entry<Integer,Goods>> listGoods=new ArrayList<>(); 7 li

Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Set; 6 7 /* 8 * Map集合的遍历. 9 * Map -- 夫妻对 10 * 11 * 思路: 12 * A:获取所有结婚证的集合 13 * B:遍历结婚证的集合,得到每一个结婚证 14 * C:根据结婚证获取丈夫和妻子 15 * 16 * 转换: 17 * A:获取所有键值对对象的集合 1

使用Java8 Stream API对Map按键或值进行排序

一.什么是Java 8 Stream 使用Java 8 Streams,我们可以按键和按值对映射进行排序.下面是它的工作原理: 将Map或List等集合类对象转换为Stream对象 使用Streams的sorted()方法对其进行排序 最终将其返回为LinkedHashMap(可以保留排序顺序) sorted()方法以Comparator作为参数,从而可以按任何类型的值对Map进行排序.如果对Comparator不熟悉,可以看本号前几天的文章,有一篇文章专门介绍了使用Comparator对Lis

Java基础知识强化之集合框架笔记53:Map集合之Map集合的遍历 键值对对象找键和值

1. Map集合的遍历(键值对对象找键和值) Map -- 夫妻对  思路:  A: 获取所有结婚证的集合  B: 遍历结婚证的集合,得到每一个结婚证  C: 根据结婚证获取丈夫和妻子 转换:  A: 获取所有键值对对象的集合  B: 遍历键值对对象的集合,得到每一个键值对对象  C: 根据键值对对象获取键和值 2. 代码示例: 1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 impo

【JSP EL】EL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

1.EL表达式 获取list长度 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <c:if test="${fn:length(list名字)>1}"&g

获取map集合中的键和值

1.根据键找值 public static void main(String[] args) { //创建集合对象 Map<String ,Integer> map=new HashMap<String ,Integer>(); //创建元素并添加到集合 map.put("hello", 1); map.put("world", 2); Set <String> set=map.keySet(); for(String key:s

List&lt;HashMap&lt;String,String&gt;&gt; list, 根据hashmap中的某个键的值排序

//可以使用Collections.sort(List list, Comparator c)来实现 这里举例hashmap中存的一个时间的键值,按照时间的值来排序 //先写个类实现Comparator,并重写compare(Object o1, Object o2)方法,在方法中自定义比较逻辑 public class MyComparator implements Comparator { @Override     public int compare(Object o1, Object 

C# 键值对排序

static void Main(string[] args) { SortedList sl = new SortedList(); sl.Add("001", "Zara Ali"); sl.Add("002", "Abida Rehman"); sl.Add("003", "Joe Holzner"); sl.Add("004", "Mausam Be