Java基础Day-Sixteen

应用Collection实现集合排序

复制代码
package com.imooc.collection.List;
​
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
​
public class ListSorter {
​
    class SampleComparator implements Comparator<Integer>{
        //70 90 30 50
        //结果>0,则交换位置
        //结果=0或小于0,则位置不变
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2-o1;//o1-o2:升序;o2-o1:降序
        }
    }
​
    public List<Integer> sort(List<Integer> list){
        Collections.sort(list,new SampleComparator());//升序排列
        System.out.println(list);
        return list;
    }
​
    public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();
        list.add(70);
        list.add(90);
        list.add(30);
        list.add(50);
        System.out.println(list);
        ListSorter listSorter=new ListSorter();
        List<Integer> list1=listSorter.sort(list);
        System.out.println(list1);
    }
}
  • 自定义类型如何集合排序

    复制代码
    package com.imooc.collection;
    ​
    public class Goods {
        private String sn;
        private String title;
    ​
        public Goods(String sn,String title){
            this.title=title;
            this.sn=sn;
        }
    ​
        @Override
        public String toString(){
            return "Goods{"+"sn='"+sn+'\''+",title='"+title+'\''+'}';
        }
    ​
        public String getSn(){
            return sn;
        }
    ​
        public String getTitle(){
            return title;
        }
    }
    ​
    复制代码
    package com.imooc.collection;
    ​
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    ​
    public class CustomObjectSortSample {
        private class CustomComparator implements Comparator<Goods>{
    ​
            @Override
            public int compare(Goods o1, Goods o2) {
    //            return o1.getSn().compareTo(o2.getSn());
                return o1.getTitle().compareTo(o2.getTitle());
            }
        }
    ​
        public List<Goods> sort(List<Goods> list){
            CustomComparator comp=new CustomComparator();
            Collections.sort(list,comp);
            return list;
        }
    ​
        public static void main(String[] args) {
            List<Goods> goodsList=new ArrayList<>();
            goodsList.add(new Goods("18827382190","商品A"));
            goodsList.add(new Goods("83219078978","商品B"));
            goodsList.add(new Goods("83241781237","商品C"));
            goodsList.add(new Goods("18579831426","商品D"));
            System.out.println("排序前");
            System.out.println(goodsList);
            System.out.println("排序后");
            List<Goods> list=new CustomObjectSortSample().sort(goodsList);
            System.out.println(list);
        }
    }
    ​
相关推荐
Assby1 天前
Java异常体系结构
java·后端
superman超哥1 天前
迭代器适配器(map、filter、fold等):Rust函数式编程的艺术
开发语言·rust·编程语言·rust map·rust filter·rust fold·rust函数式
yuanmenghao1 天前
自动驾驶中间件iceoryx - 同步与通知机制(二)
开发语言·单片机·中间件·自动驾驶·信息与通信
天天睡大觉1 天前
Python学习7
windows·python·学习
郝学胜-神的一滴1 天前
Qt实现圆角窗口的两种方案详解
开发语言·c++·qt·程序人生
superman超哥1 天前
Iterator Trait 的核心方法:深入理解与实践
开发语言·后端·rust·iterator trait·trait核心方法
冰暮流星1 天前
javascript短路运算
开发语言·前端·javascript
kylezhao20191 天前
在C#中实现异步通信
开发语言·c#
Coder_Boy_1 天前
基于SpringAI的在线考试系统-数据库表设计
java·数据库·算法
05大叔1 天前
大事件Day01
java·开发语言