package com.txooo.utils; import com.txooo.ui.log.Trace; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; /** * Created by 徐嘉健 on 2018/10/24. */ public class ListControl { /** * 集合去重 * * @param list * @return */ public static List removeDuplicate(List list) { Set set = new LinkedHashSet<>(); set.addAll(list); list.clear(); list.addAll(set); return list; } /** * 使用 Map 按 Key 进行排序 * * @param oriMap 排序 Map 集合 * @param isRise 是否按照升序排序 */ public static Map<String, String> sortMapByKey(Map<String, String> oriMap, final boolean isRise) { if (oriMap == null || oriMap.isEmpty()) { return null; } Map<String, String> sortMap = new TreeMap<>(new Comparator<String>() { @Override public int compare(String o1, String o2) { if (isRise) { // 升序排序 return o1.compareTo(o2); } else { // 降序排序 return o2.compareTo(o1); } } }); sortMap.putAll(oriMap); return sortMap; } /** * 使用 Map 按 Value 进行排序 * * @param oriMap 排序 Map 集合 * @param isRise 是否按照升序排序 */ public static Map<String, String> sortMapByValue(Map<String, String> oriMap, final boolean isRise) { if (oriMap == null || oriMap.isEmpty()) { return null; } Map<String, String> sortedMap = new LinkedHashMap<>(); // 将oriMap.entrySet()转换成List List<Map.Entry<String, String>> entryList = new ArrayList<>(oriMap.entrySet()); // 通过比较器来实现排序 Collections.sort(entryList, new Comparator<Map.Entry<String, String>>() { @Override public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) { if (isRise) { // 升序排序 return o1.getValue().compareTo(o2.getValue()); } else { // 降序排序 return o2.getValue().compareTo(o1.getValue()); } } }); Iterator<Map.Entry<String, String>> iterator = entryList.iterator(); Map.Entry<String, String> tmpEntry; while (iterator.hasNext()) { tmpEntry = iterator.next(); sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue()); } return sortedMap; } }