Java Arraylist的sort方法使用

本文介绍了一个使用Java实现的学生信息排序程序。程序通过自定义比较器SortByKey,对包含社会代码(socyCd)、团队代码(teamCd)和日期(date)的学生信息进行排序。排序依据为社会代码和团队代码的组合字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Sort {
    public static void main(String[] args) {
        List<Student> list = new ArrayList<Student>();
        Student s1 = new Student();
        Student s2 = new Student();
        Student s3 = new Student();
        Student s4 = new Student();
        s1.setSocyCd("AA");
        s1.setTeamCd("T0001");
        s1.setDate("20180101");
        s2.setSocyCd("AB");
        s2.setTeamCd("T0002");
        s2.setDate("20180101");
        s3.setSocyCd("AC");
        s3.setTeamCd("T0003");
        s3.setDate("20180101");
        s4.setSocyCd("AD");
        s4.setTeamCd("T0004");
        s4.setDate("20180101");
        list.add(s2);
        list.add(s1);
        list.add(s4);
        list.add(s3);
        for (Student student : list) {
            System.out.println(student.getSocyCd()+student.getTeamCd()+student.getDate());
        }
        System.out.println("-----------------");

        //for(int i=0;i<10;i++) {

            Student mi = new Student();
        //}

        mi.setSocyCd("AA");
        mi.setTeamCd("T0002");
        mi.setDate("");

        list.add(mi);
        SortByKey sb = new SortByKey();
        Collections.sort(list, sb);
        for (Student student : list) {
            //System.out.println(student.getSocyCd());
            System.out.println(student.getSocyCd()+student.getTeamCd()+student.getDate());
        }
    }
}

class SortByKey implements Comparator<Object> {
    @Override
    public int compare(Object o1, Object o2) {
        Student s1 = (Student) o1;
        Student s2 = (Student) o2;
        if ((s1.getSocyCd()+s1.getTeamCd()).compareTo(s2.getSocyCd()+s2.getTeamCd())>0) {
            return 1;
//        } else if (s1.getTeamCd().compareTo(s2.getTeamCd())>=0) {
//            return 1;
        } else if (s1.getDate().compareTo(s2.getDate())==0) {
            return 0;
        }
        return -1;
    }

}
class Student{
    private String socyCd;
    private String teamCd;
    private String date;
    public String getSocyCd() {
        return socyCd;
    }
    public void setSocyCd(String socyCd) {
        this.socyCd = socyCd;
    }
    public String getTeamCd() {
        return teamCd;
    }
    public void setTeamCd(String teamCd) {
        this.teamCd = teamCd;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值