Java实现对List中的对象按某个字段进⾏排序声明1)该⽂章整理⾃⽹上的⼤⽜和专家⽆私奉献的资料,具体引⽤的资料请看参考⽂献。
2)本⽂仅供学术交流,⾮商⽤。
如果某部分不⼩⼼侵犯了⼤家的利益,还望海涵,并联系博主删除。
3)博主才疏学浅,⽂中如有不当之处,请各位指出,共同进步,谢谢。
4)此属于第⼀版本,若有错误,还需继续修正与增删。
还望⼤家多多指点。
⼤家都共享⼀点点,⼀起为祖国科研的推进添砖加⽡。
1public class Logs implements Serializable, Comparable<Logs> {23private String id;4private String username;5private String contents;6private String consequence;7private String ip;8private Long times;910 @Override11public int compareTo(Logs o) {12return 0;13 }1415 }16解析: Logs实体,要继承Comparable<T>接⼝, 然后再实现⼀个public int compareTo(Logs o) ⽅法.1718现在,我要对List<Logs> 中的数据按 times 字段进⾏排序192021 @Test22public void testMath(){23 List<Logs> list = new ArrayList<Logs>();24 list.add(new Logs("1","chen", "djifand", "jdifa", "jdfid", 49L));25 list.add(new Logs("134","ce", "cae", "jdifa", "jdfid", 123L));26 list.add(new Logs("3","cet", "djifand", "jdifa", "jdfid", 99L));27 list.add(new Logs("4","egge", "djifand", "jdifa", "jdfid", 111L));28 list.add(new Logs("15","chen", "djifand", "jdifa", "jdfid", 59L));29 list.add(new Logs("6","chen2", "cae", "jdifa", "jdfid", 123L));30 list.add(new Logs("87","cet", "djifand", "jdifa", "jdfid", 213L));31 list.add(new Logs("8","egge", "djifand", "jdifa", "jdfid", 201L));32 list.add(new Logs("9","egge2", "djifand", "jdifa", "jdfid", 269L));33 list.add(new Logs("10","ce", "cae", "jdifa", "jdfid", 121L));34 list.add(new Logs("11","chen3", "djifand", "jdifa", "jdfid", 1123L));35 list.add(new Logs("5","cet2", "djifand", "jdifa", "jdfid", 12L));3637 System.out.println("---- 排序前的输出 ----- ");38for (Logs logs : list) {39 System.out.println("数据: "+logs);40 }41 System.out.println("---- 排序后的结果 ----- ");42 List<Logs> search = search(list);4344for (Logs logs : search) {45 System.out.println("-->"+logs);46 }4748 }495051// ⽅式1: 降序排列52public List<Logs> search(List<Logs> logsList){53 Collections.sort(logsList, new Comparator<Logs>() {54 @Override55public int compare(Logs o1, Logs o2) {56if ((o1.getTimes() > o2.getTimes())){57return -1;58 }59if (o1.getTimes() == o2.getTimes()){60return 0;61 }62return 1;63 }64 });65return logsList;66 }6768// ⽅式2: 升序排列69public List<Logs> search(List<Logs> logsList){70 Collections.sort(logsList, new Comparator<Logs>() {71 @Override72public int compare(Logs o1, Logs o2) {73if ((o1.getTimes() > o2.getTimes())){74return 1;75 }76if (o1.getTimes() == o2.getTimes()){77return 0;78 }79return -1;80 }81 });82return logsList;83 }84// ⽅式3: 降序排列85public List<Logs> search(List<Logs> logsList){86 Collections.sort(logsList, new Comparator<Logs>() {87 @Override88public int compare(Logs o1, Logs o2) {89return -o1.getTimes().compareTo(o2.getTimes());90 }91 });92return logsList;93 }9495// ⽅式4: 升序排列96public List<Logs> search(List<Logs> logsList){97 Collections.sort(logsList, new Comparator<Logs>() {98 @Override99public int compare(Logs o1, Logs o2) {100return o1.getTimes().compareTo(o2.getTimes()); 101 }102 });103return logsList;104 }。