Collections.sort()自定义排序针对字符串集合 和 list对象排序 野性酷女 2022-05-26 03:50 334阅读 0赞 字符串集合的自定义排序: package ceshi; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; public class ceshi \{ public static void main(String\[\] args)\{ String\[\] monthDays = "1,2,4,5,7,8,56,11,30,21,23,26,27,4,98".split(","); List<String> yearListlist = Arrays.asList(monthDays); Collections.sort(yearListlist,new SComparator()); for(String kk :yearListlist)\{ System.out.println(kk); \} \} static class SComparator implements Comparator \{ public int compare(Object object1, Object object2) \{// 实现接口中的方法 Integer p1 = Integer.parseInt(String.valueOf(object1)); // 强制转换 Integer p2 = Integer.parseInt(String.valueOf(object2)); if(p1 > p2)\{ return 1; \}else if(p1 == p2)\{ return 0; \}else\{ return -1; \} //return new Double(p1.price).compareTo(new Double(p2.price)); //return p1.compareTo(p2); \} \} \} list对象排序自定义排序,对象实现Comparable接口 ,重写compareTo()方法来实现: package test; public class Pojo implements Comparable\{ private Integer bijiao; private String nameString; private String status; public Integer getBijiao() \{ return bijiao; \} public void setBijiao(Integer bijiao) \{ this.bijiao = bijiao; \} public String getNameString() \{ return nameString; \} public void setNameString(String nameString) \{ this.nameString = nameString; \} public String getStatus() \{ return status; \} public void setStatus(String status) \{ this.status = status; \} @Override public int compareTo(Object gg)\{ Pojo kk = (Pojo)gg; if(this.bijiao>kk.bijiao)\{ return 1; \}else \{ return -1; \} \} \} package test; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class bi \{ public static void main(String\[\] args)\{ List<Pojo> ceshi = new ArrayList<Pojo>(); Pojo k1 = new Pojo(); k1.setBijiao(1); k1.setNameString("k1"); Pojo k2 = new Pojo(); k2.setBijiao(2); k2.setNameString("k2"); Pojo k3 = new Pojo(); k3.setBijiao(3); k3.setNameString("k3"); ceshi.add(k3); ceshi.add(k2); ceshi.add(k1); Collections.sort(ceshi); for(Pojo zz:ceshi)\{ System.out.println(zz.getNameString()); \} \} \} compareto就是比较两个数据的大小关系 大于0表示前一个数据比后一个数据大, 0表示相等,小于0表示第一个数据小于第二个数据. # [升序 Collections.sort(list) 降序 Collections.reserve(list) 随机 Collections.shuffle(list)][Collections.sort_list_ _ Collections.reserve_list_ _ Collections.shuffle_list] # [Collections.sort_list_ _ Collections.reserve_list_ _ Collections.shuffle_list]: https://www.cnblogs.com/1020182600HENG/p/5917462.html
还没有评论,来说两句吧...