出格网站建设,网络维保,个人wordpress怎么赚钱,郓城做网站公司目录
1.使用List的sort()方法#xff0c;自定义一个Compartor比较器
2.使用List的sort()方法#xff0c;Lambda表达式写法【写法很简单#xff0c;推荐】
3.使用Collections.sort()方法【重写Comparable接口】
4.使用Collections.sort()方法【自定义Compartor比较器】
…目录
1.使用List的sort()方法自定义一个Compartor比较器
2.使用List的sort()方法Lambda表达式写法【写法很简单推荐】
3.使用Collections.sort()方法【重写Comparable接口】
4.使用Collections.sort()方法【自定义Compartor比较器】
5.使用StreamAPI【推荐】
6.结合冒泡排序暴力排序 首先我们新建一个Person类,并为其设置age属性我们后续根据该属性进行从小到大的排序。
public class Person{public int age;.....此处省略getset和toString方法方法.....
}
之后新建测试类Test
public class Test {public static void main(String[] args) {ListPerson list new ArrayList();list.add(new Person(5));list.add(new Person(7));list.add(new Person(4));list.add(new Person(2));list.add(new Person(0));list.add(new Person(3));list.add(new Person(1));list.add(new Person(6));......排序方法往后看...... System.out.println(list);}
}
1.使用List的sort()方法自定义一个Compartor比较器
public static void comp(ListPerson list){list.sort(new ComparatorPerson() {Overridepublic int compare(Person o1, Person o2) {if ((o1.getAge() - o2.getAge()) 0) {return 1;}else if ((o1.getAge() - o2.getAge()) 0) {return -1;}else {return 0;}}});}
2.使用List的sort()方法Lambda表达式写法【写法很简单推荐】
public static void lambda(ListPerson list){list.sort(((o1,o2) - {//从小到大return o1.age - o2.age;//此处定义比较规则o2.age-o1.age即为从大到小}));}
3.使用Collections.sort()方法【重写Comparable接口】
注意该方法需要元素类实现Comparable接口并且重写compareTo方法排序按照compareTo中的规则进行排序。
Person类
public class Person implements ComparablePerson{public int age;public Person(){}public Person(int age){this.age age;}Overridepublic int compareTo(Person o) {return this.age - o.age;}———————————————————————————————此处省略get、set和toString方法————————————————————————————————}Test类中直接调用
Collections.sort(list);
4.使用Collections.sort()方法【自定义Compartor比较器】
public static void coll(ListPerson list){Collections.sort(list, new ComparatorPerson() {Overridepublic int compare(Person o1, Person o2) {return o1.getAge() - o2.getAge(); //按数量从大到小排序}});}
注意比较器也可以写在元素类中
public class Person{public int age;public Person(){}public Person(int age){this.age age;}public static ComparatorPerson comparator new ComparatorPerson() {Overridepublic int compare(Person o1, Person o2) {return o2.age - o1.age;}};此处省略get、set和toString方法}
Test类中调用
Collections.sort(list,Person.compartor)
5.使用StreamAPI【推荐】
这种方式利用Stream API中的sorted()方法通过Comparator.comparingInt()指定排序的字段例如age并使用collect()方法将排序后的元素收集到一个新的列表中。
public static ListPerson stream(ListPerson list){list list.stream().sorted(Comparator.comparing(Person::getAge)).collect(Collectors.toList());return list;}
6.结合冒泡排序暴力排序
public static void buubleSort(ListPerson list){for (int i 0; i list.size(); i) {for(int j 0;jlist.size() - 1;j){if(list.get(j).getAge() list.get(j1).getAge()){Person temp list.get(j);list.set(j,list.get(j1));list.set(j1,temp);}}}} 本人还有对优先级队列倒序排序的文章欢迎大家观看批评指正蟹蟹点击传送完成对优先级队列倒叙排序