java和安卓中对Map的key值和value值进行升序降序排序干货

前言

开发中很多情况下需要进行对数据的排序,然而经常用到Map来储存值进行排序。下面给大家详细介绍一下map的key 与 value的值升序降序排序

下面Collections.reverse(list);的作用主要将升序排好的进行降序具体详细看下面

Map中key的升序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapTest {

/**
* 升序排序
* @param args
*/
public static void main(String[] args) {
// 创建一个Map储存值
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("z", 1);
map.put("l", 2);
map.put("g", 3);
map.put("c", 4);
map.put("m", 5);
// 这里将map.entrySet()转换成list
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
// 然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
// 升序排序
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
//进行key比较
return o1.getKey().compareTo(o2.getKey());
}

});

for (Map.Entry<String, Integer> key : list) {
System.out.println(key.getKey() + ":" + key.getValue());
}

}

}

java和安卓中对Map的key值和value值进行升序降序排序干货-上流阁

Map中key的降序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapTest {

/**
* 降序排序
*
* @param args
*/
public static void main(String[] args) {
// 创建一个Map储存值
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("z", 1);
map.put("l", 2);
map.put("g", 3);
map.put("c", 4);
map.put("m", 5);
// 这里将map.entrySet()转换成list
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
// 然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
// 降序排序
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
// 进行key比较
return o1.getKey().compareTo(o2.getKey());
}

});
// 这里是将排好的进行降序排序
Collections.reverse(list);

for (Map.Entry<String, Integer> key : list) {
System.out.println(key.getKey() + ":" + key.getValue());
}

}

}

java和安卓中对Map的key值和value值进行升序降序排序干货-上流阁

Map中Value的升序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapTest {

/**
* 升序排序
*
* @param args
*/
public static void main(String[] args) {
// 创建一个Map储存值
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("z", 1);
map.put("l", 2);
map.put("g", 3);
map.put("c", 4);
map.put("m", 5);
// 这里将map.entrySet()转换成list
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
// 然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
// 升序排序
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
// 进行Value比较
return o1.getValue().compareTo(o2.getValue());
}

});

for (Map.Entry<String, Integer> key : list) {
System.out.println(key.getKey() + ":" + key.getValue());
}

}

}

java和安卓中对Map的key值和value值进行升序降序排序干货-上流阁

Map中Value的降序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapTest {

/**
* 降序排序
*
* @param args
*/
public static void main(String[] args) {
// 创建一个Map储存值
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("z", 1);
map.put("l", 2);
map.put("g", 3);
map.put("c", 4);
map.put("m", 5);
// 这里将map.entrySet()转换成list
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
// 然后通过比较器来实现排序
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
// 升序排序
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
// 进行Value比较
return o1.getValue().compareTo(o2.getValue());
}

});
// 这里是将排好的进行降序排序
Collections.reverse(list);

for (Map.Entry<String, Integer> key : list) {
System.out.println(key.getKey() + ":" + key.getValue());
}

}

}

java和安卓中对Map的key值和value值进行升序降序排序干货-上流阁

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/java/2017/08/12/1073.html
发表评论

4 条评论
相关文章
jar包解压后,修改完配置文件,再还原成jar包
jar包解压后,修改完配置文件,再还原成…
JAVA DES 十六进制加密
JAVA DES 十六进制加密
HTML中Data URI scheme BASE64 文件的拼接头
HTML中Data URI scheme BASE64 文件的拼…
windows BAT 文件 多个命令同步执行
windows BAT 文件 多个命令同步执行
java 中 封装BigDecimal常用计算类MathUtils
java 中 封装BigDecimal常用计算类MathU…
JDBC原生链接Mysql数据根据表映射生成bean实体类
JDBC原生链接Mysql数据根据表映射生成be…
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论