怎么给list内的对象排序?

首先,对象要实现Comparable接口,自然需要重写compareTo方法

在compareTo里定义哪个排前面,中间就是return 0

compareTo方法中要确定:

1.拿哪个属性比较

2.怎么样就可以排在前面

3.排在前面返回1,排在后面返回-1

public class Employee implements Comparable<Employee>{
    private int id;
    private String name;
    private int age;
    public Employee(int id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }
    @Override
    public int compareTo(Employee o) {

        if(id > o.getId()){
            return 1;
        }else if(id < o.getId()){
            return -1;
        }

        return 0;
    }
    /**
     * @return the id
     */
    public int getId() {
        return id;
    }
    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the age
     */
    public int getAge() {
        return age;
    }
    /**
     * @param age the age to set
     */
    public void setAge(int age) {
        this.age = age;
    }
    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("员工编号:"+getId()+",");
        sb.append("员工姓名:"+getName()+",");
        sb.append("员工年龄:"+getAge());
        return sb.toString();
    }
    

list内对象的排序:

1.声明list

2.添加元素

3.用Collections.sort(list);方法完成排序

public static void main(String[] args) {

        List<Employee> list = new ArrayList<Employee>();
        list.add(new Employee(3,"王志",21));
        list.add(new Employee(2,"李农",22));
        list.add(new Employee(1,"郭楠",23));
        //先遍历,在遍历中打印每个对象
        System.out.println("排序前:");
        for(Employee e : list){
            System.out.println(e);
        }
        Collections.sort(list);
        System.out.println("排序后:");
        for(Employee e : list){
            System.out.println(e);
        }

    }

时间: 2024-10-31 19:08:11

怎么给list内的对象排序?的相关文章

数组内的对象按照2个属性进行排序

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> 数组内的对象按照2个属性进行排序(先按time从大到小排序,再按weight从大到小排序),请查看控制台看输出结果:<br/> var array = [<br/>

基本类型、引用类型、基本包装类型和单体内置对象

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.基本包装类型和单体内置对象都是特殊的引用类型. 一.基本类型 基本类型包含Undefined.Null.Boolean.Number.String 这5种.基本数据类型是按值访问的,因为可以操作保存在变量中的实际值. 基本类型保存在内存中的栈中,大小固定,复制其变量时会创建这个值的一个副本.用typeof方法可以确定一个值是哪种基本类型. 二.引用类型 引用类型包括Object .Array.  Date.  RegExp.

js学习---常用的内置对象(API)小结 :

内置对象(API): 日期 Date: getFullYear() 返回完整的4位的年份  如:2016 getMonth()    返回月份,从0开始 getDate()   返回当前月的第几天,当月的几号 getHours()   返回0-23的小时数字 getMinutes()  返回0-59的分钟数字 getSeconds()  返回0-59的秒数字 getTime()    返回毫秒数 getMilliseconds()  返回毫秒数字 getDay()       返回星期几 Arr

常用内置对象

1.什么是JavaScript对象 对象是JavaScript中最重要的元素 JavaScript包含多种对象: 内置对象 自定义对象 浏览器对象 HTML DOM对象2.使用对象 对象由属性和方法封装而成 属性的引用 使用点(.)运算符 对象的方法的引用 ObjectName.method()3.常用内置对象 简单数据对象 String.Number.Boolean 组合对象 Array.Math.Date 高级对象 Function.RegExp4.String对象 创建字符串对象 Stri

JavaScript系列三:JavaScript内置对象

1.什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法:能够在对象上执行的动作.例如,表单的"提交"(Submit),时间的"获取"(getYear)等: JavaScript 提供多个内建对象,比如 String.Date.Array 等等,使用对象前先定义,如下使用数组对象: 访问对象属性的语法: objectNam

js的内置对象

内置对象: 一.Array数组: 创建数组有三种类似的方法,跟其他语言也没多少区别 1)直接通过new 与Array的构造函数进行实例化,不带有参数 var array=new Array(); 2)带有参数 var array=new Array(2,3,4,'22'); 改数组跟as很想属于稀疏数组,可以添加任意类型的元素,可以重复,可以间隔添加. 3)指定数组大小 var array=new Array(20); 只带有参数只有一个数字的array,那么数组的大小就是20,如果添加的不是数

JS数组及内置对象

[JS中的数组] 1.数组的概念:数组是在内存中连续存储多个有序元素的结构元素的顺序,称为下标,通过下标查找对应元素. 2.数组的声明: ① 字面量声明: var arr1 = [];JS中同一数组,可以储存多种不同的数据类型(但一般同一数组只用于存放同种数据类型):例如:var arr1 = [1,"2",true,{"name":"jianghao"},[1,2]]; ② new关键字声明: var arr2 = new Array(参数);

JS中的内置对象简介与简单的属性方法

JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一数组可以储存多种不同的数据类型(但,同一数组一般只用于存放同种数据类型) 例如var arr1 = [1,"2",true,{"name":"啦啦啦"},[1,2]]; ②通过new关键字声明:var arr2 = new Array(参数); &g

js-DOM ~ 04. BOM:浏览器对象模型window. 、定时器、在线用户、祝愿墙、BOM的内置方法内置对象

multiple. select列表多选 触发事件后调用有参数的函数要先创建一个函数,然后在函数内调用执行函数 Array.from(伪数组):伪数组变为真数组 indexOf():查询字符的索引 a)  indexOf('abcde') i.      indexOf('a')的索引是0 ii.      indexOf('abc')的索引是0,按照第一个字符的索引 iii.      indexOf('ac')的索引是-1,查找不到ac连续的字符 iv.      indexOf('f')的