【思路】嵌套List针对某index进行排序
来源:互联网 发布:快手红人淘宝店铺大全 编辑:程序博客网 时间:2024/06/03 15:53
嵌套List示例:
[[“aa”,”bb”,”2”,”nn”],[“aa”,”bb”,”12”,”nn”],[“aa”,”bb”,”20”,”nn”],[“aa”,”bb”,”32”,”nn”],[“aa”,”bb”,”23”,”nn”],[“aa”,”bb”,”52”,”nn”]]
我们想针对列表的第三个字段也就是index=2的进行排序。
排序之后输出的结果还是嵌套List,只是输出的顺序发生变化。
尝试过几种方式,最终锁定了TreeMap来完成排序操作。
代码如下:
package JavaHeap;import java.util.ArrayList;import java.util.Comparator;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class sort { public static void main(String[] args) { List<String> ll = new ArrayList<>(); List<List<String>> list = new ArrayList<List<String>>(); ll.add("aa"); ll.add("bb"); ll.add("2"); ll.add("nn"); list.add(ll); ll = new ArrayList<>(); ll.add("aa"); ll.add("bb"); ll.add("32"); ll.add("nn"); list.add(ll); ll = new ArrayList<>(); ll.add("aa"); ll.add("bb"); ll.add("22"); ll.add("nn"); list.add(ll); System.err.println(list); List<List<String>> li = OrderByEvgDesc(list); System.err.println(li); } private static List<List<String>> OrderByEvgDesc(List<List<String>> list1) { List<List<String>> list = new ArrayList<List<String>>(); Map<Integer, List<String>> map = new TreeMap<Integer, List<String>>( new Comparator<Integer>() { public int compare(Integer obj1, Integer obj2) { // 降序排序 return obj2.compareTo(obj1); } }); for (int i = 0; i < list1.size(); i++) { map.put(Integer.parseInt(list1.get(i).get(2)), list1.get(i)); } Set<Integer> keySet = map.keySet(); Iterator<Integer> iter = keySet.iterator(); while (iter.hasNext()) { Integer key = iter.next(); list.add(map.get(key)); } return list; }}
运行结果:
排序之前:[[aa, bb, 2, nn], [aa, bb, 32, nn], [aa, bb, 22, nn]]排序之后:[[aa, bb, 32, nn], [aa, bb, 22, nn], [aa, bb, 2, nn]]
补充:
TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
0 0
- 【思路】嵌套List针对某index进行排序
- 在JAVA中针对LIST进行排序
- 针对list集合排序
- 对list进行排序
- 对list进行排序
- list集合进行排序
- 对list进行排序
- 对list进行排序
- 对list中的对象进行求最大值和以及排序,针对对象的某一个元素为依据
- 技巧:针对多列进行排序
- Oracle中针对中文进行排序
- Oracle中针对中文进行排序
- WPF 针对数据源某个属性进行排序
- Oracle中针对中文进行排序
- Oracle中针对中文进行排序
- Oracle中针对中文进行排序
- freemarker list (长度,遍历,下标,嵌套,排序)
- map和list嵌套数据排序
- 远程管理 KVM 虚机
- 插入排序
- ES6 -- 异步编程神器:Promise对象
- 箭头函数 generator
- 新完整包
- 【思路】嵌套List针对某index进行排序
- Java处理json 取json值
- Android Studio中新建的工程中使用了Module,从app中去调用Module中的东西,需要如何操作。
- MongoDB3.4 shell CRUD操作
- waveInStop死锁
- 2017.05.04回顾 线性可分的一些问题引出
- Docker到底是什么?为什么它这么火!
- ext text 去边框
- [李景山php] 20170504深入理解PHP内核[读书笔记]--第一章准备工作和背景知识--2