工具类和集合类的自制排序代码总结

xiaoxiao2021-02-28  48

package com.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.TreeSet; class PersonDemo{ int age; public PersonDemo(int age){ this.age = age; } @Override public String toString() { // TODO Auto-generated method stub return String.valueOf(age); } } class PersonDemo2 implements Comparable<PersonDemo2>{ int age; public PersonDemo2(int age){ this.age = age; } @Override public int compareTo(PersonDemo2 o) { return Integer.compare(this.age, o.age); } @Override public String toString() { return String.valueOf(age); } } public class Java7NewFeatures { public static void main(String[] args) { /*数组排序*/ Integer[] a1 = {1,1,3,2,4}; Arrays.sort(a1,new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return Integer.compare(o2, o1);//compare不会去重,如果想去重的话就判断当数字相等的时候返回-1 } }); System.out.println(Arrays.toString(a1)); /*集合排序*/ List<Integer> a = new ArrayList<>(); a.add(1); a.add(3); a.add(2); a.add(4); /*第一种:集合工具类sort自制排序*/ Collections.sort(a, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return Integer.compare(o1, o2); } }); System.out.println(a); //第二种:调用集合自身方法 a.sort(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return Integer.compare(o2, o1); } }); //lambda表达式简化写法 a.sort((o1,o2)->Integer.compare(o2, o1)); System.out.println(a); /*匿名内部类方式实现Conparator接口自制排序*/ Set<PersonDemo> set = new TreeSet<>(new Comparator<PersonDemo>() { @Override public int compare(PersonDemo o1, PersonDemo o2) { return Integer.compare(o1.age, o2.age); } }); set.add(new PersonDemo(2)); set.add(new PersonDemo(1)); set.add(new PersonDemo(3)); System.out.println(set); /*在类中实现Compatable接口自制排序*/ Set<PersonDemo2> set2 = new TreeSet<>(); set2.add(new PersonDemo2(2)); set2.add(new PersonDemo2(1)); set2.add(new PersonDemo2(3)); System.out.println(set2); } }

切记Collections.sort(list)

转载请注明原文地址: https://www.6miu.com/read-2622042.html

最新回复(0)