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 条评论
相关文章
安卓开发WebView与HTML页面JS互相交互的干货
安卓开发WebView与HTML页面JS互相交互的…
android studio用okhttp简单访问配置附demo事例
android studio用okhttp简单访问配置附d…
java用户metadata-extractor读取照片信息错误Exception in thread “main” java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException
java用户metadata-extractor读取照片信…
eclipse导出可执行jar包并在Windows下用鼠标双击可运行
eclipse导出可执行jar包并在Windows下用…
MySQL数据库sql中字符串函数的字符串截取
MySQL数据库sql中字符串函数的字符串截取
双等于==运算符中的抽象相等比较算法使用
双等于==运算符中的抽象相等比较算法使用
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论