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);
        }
    }
    ​
相关推荐
CodeCraft Studio1 天前
JavaScript图表库 DHTMLX Diagram 6.1 重磅发布:全新PERT模式上线,项目可视化能力再升级!
开发语言·javascript·ecmascript·dhtmlx·图表开发·diagram·javascript图表库
程序员阿明1 天前
spring security 6的知识点总结
java·后端·spring
Dxy12393102161 天前
Python的正则表达式如何做数据校验
开发语言·python·正则表达式
UP_Continue1 天前
C++--右值和移动语义
开发语言·c++
李子园的李1 天前
Java函数式接口——渐进式学习
java
running up1 天前
Spring Bean生命周期- BeanDefinition 加载与 BeanFactoryPostProcessor BeanPostProcessor
java·后端·spring
222you1 天前
Java线程的三种创建方式
java·开发语言
脸大是真的好~1 天前
计算机408基础相关面试题-备用,不推荐
java
云上漫步者1 天前
深度实战:Rust交叉编译适配OpenHarmony PC——unicode_width完整适配案例
开发语言·后端·rust·harmonyos
小费的部落1 天前
Excel 在Sheet3中 匹配Sheet1的A列和Sheet2的A列并处理空内容
java·前端·excel