java集合排序该如何实现?

TheDisguiser 2020-08-20 21:09:29 java常见问答 4470

集合的排序虽然十分简单,但也是项目中的一大硬题,本篇文章小编就会给大家详细介绍集合的排序,快一起看看吧。

在java中,集合工具类Collections只提供了两种排序方法,下面我们来看下一般被称为自然排序的方法

package test;
public class Emp implements Comparable
{
    private String name;
    private int age;
    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 Emp()
    {
        super();
    }
    public Emp(String name, int age)
    {
        super();
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString()
    {
        return "Emp [name=" + name + ", age=" + age + "]";
    }
    @Override
    public int compareTo(Object o)
    {
        if (o instanceof Emp)
        {
            Emp emp = (Emp) o;
            //          return this.age-emp.getAge();//按照年龄升序排序
            return this.name.compareTo(emp.getName()); //换姓名升序排序
        }
        throw new ClassCastException("不能转换为Emp类型的对象...");
    }
}

除了上面这种,还有一种叫定制排序的方法,或者叫自定义排序也行,这种需要编写匿名内部类,然后new一个Comparator接口的比较器对象cmp,同时实现compare()其方法; 再将比较器对象cmp传到Collections.sort()方法的参数列表中,从而实现排序功能。

以上就是今天的全部内容,如果有小伙伴还有疑问想了解更多java常见问题,可以来我们的官网寻找答案。

推荐阅读:

线程安全的集合是什么集合?都有哪些线程安全集合?

java集合框架的成员都有谁?

java集合转数组要怎么转?java实例