list集合的排序Comparator和Collections.sort

一个例子

package sortt;

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

public class HomeWork {

    public static void main(String[] args) {
        List<Emp> ems =new ArrayList<Emp>();
        ems.add(new Emp("Terry", 25, ‘m‘, 6000));
        ems.add(new Emp("Allen", 21, ‘f‘, 4000));
        ems.add(new Emp("Smith", 23, ‘m‘, 3000));
        System.out.println(ems);         //[(Terry,25,m,6000.0), (Allen,21,f,4000.0), (Smith,23,m,3000.0)]
        Comparator<Emp> com=new Comparator<Emp>(){ //匿名内部类

            public int compare(Emp o1, Emp o2) {
                // TODO Auto-generated method stub
                return (int) (o1.getSalary()-o2.getSalary());
            }
        };
        Collections.sort(ems,com);
        System.out.println(ems);           //[(Smith,23,m,3000.0), (Allen,21,f,4000.0), (Terry,25,m,6000.0)]

    }

}
Emp.java
class Emp{
    private String name;
    private int age;
    private char gender;
    private double salary;
    public Emp(String name, int age, char gender, double salary) {
        super();
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.salary = salary;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public char getGender() {
        return gender;
    }
    public void setGender(char gender) {
        this.gender = gender;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public String toString(){
        return "("+name+","+  age+"," +gender+"," + salary+")";

    }

}
时间: 2024-08-13 16:33:06

list集合的排序Comparator和Collections.sort的相关文章

[转]java中Collections.sort排序详解

Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的. compare(a,b)方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数. equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true. Collections.

【JavaSE】day05_List集合_List排序_队列和栈

1.List集合 1)有序集,可重复集.List的特点是可以像数组一样,根据下标操作元素.所以List提供了一些独有的方法. 2)常用实现类: --ArrayList:内部由数组实现,查询快. --LinkedList:内部由链表实现,增删快. 3)E get(int index) 获取指定下标对应的元素.(下标从0开始) 4)E set(int index,E e) 将给定的元素设置到指定的位置上,返回值为原位置上的元素.所以该操作是替换元素操作. 注:需在现有的元素上进行操作. 代码演示:

Java—集合框架 Collections.sort()、Comparable接口和Comparator接口

Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set是并列的. Collections.sort() 排序方法,实现对List对象中的元素进行排序. package com.test.collection; import java.util.ArrayList; import java.util.Collections; import java.ut

Java Collections.sort方法对list集合排序

1.排序测试类 package com.ljq.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class UserSort { public static void main(String[] args) { List<User> userList =new ArrayList<User&g

十五、Collections.sort(&lt;T&gt;, new Comparator&lt;T&gt;() {})针对字符串排序

1.排序对象全是字母组成,可以根据ASCII编码表排序 package com.abcd; public class Person{ private String name; private int age; private int salary; public Person() { } public Person(String name, int age, int salary) { this.name = name; this.age = age; this.salary = salary;

Collections.sort(List&lt;T&gt; Comparator) 自定义排序

Collections.sort(basicinfoList, new Comparator<MlisBasicinfo>() { @Override public int compare(MlisBasicinfo o1, MlisBasicinfo o2) { return o1.getBasicinfoValue().compareTo(o2.getBasicinfoValue()); } });

列表排序 --- Collections.sort()

Collections.sort()能够实现对List等Collection集合排序 Collections.sort(List<Type> list) 这种情况要求Type类型自身实现Comparable接口(类中覆盖compareTo方法),如下所示: 或者下面这种情况 Collections.sort(List<Type> list,new SortComparator()); 这种情况下无需再Type上实现comparable接口,需要单独实现Comparator接口(实现

Java Map集合利用比较器Comparator根据Key和Value的排序

TreeMap排序 根据Key进行排序 Map的根据key排序需要用到TreeMap对象,因为它是默认按照升序进行输出的,可以使用比较器compareTo对它进行降序排序,Comparator可以对集合对象或者数组进行排序的比较器接口,实现该接口的public compare(T o1,To2)方法即可实现排序,该方法主要是根据第一个参数o1,小于.等于或者大于o2分别返回负整数.0或者正整数,若是按照升序可以直接省略比较器代码Map<String, String> treeMap = new

集合排序: Comparator和Comparable的使用区别

Comparator接口 Comparable接口 区别 在Java中使用集合来存储数据时非常常见的,集合排序功能也是常用功能之一.下面看一下如何进行集合排序,常用的方法有: Comparator和Comparable Comparator接口 使用步骤: 新建比较类, 实现Comparator接口, 重写compare方法, package sort; import java.util.Comparator; public class LuckBoyCompare implements Com