美文网首页java编程笔记
集合list和set排序的实现

集合list和set排序的实现

作者: 爱宝宝n | 来源:发表于2019-04-25 18:31 被阅读0次

List、Set的相同点和区别

List和Set继承了Collection接口。
List以特定索引来存取元素,可以有重复元素。Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。

TreeSet的排序实现:

package com.example.demo.model;

/**
 * @author AxeLai
 * @date 2019-04-22 18:47
 */

public class User implements Comparable<User> {
    /**
     * 编号
     */
    private int id;
    /**
     * 姓名
     */
    private String name;
    /**
     * 年龄
     */
    private String sex;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public User(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    @Override
    public int compareTo(User user) {
        //升序排序
        return this.id - user.id;
        //降序排序
        //return this.age - o.age;
    }
}

        Set<User> userList = new TreeSet<>();
        userList.add(new User(1,"小李","男"));
        userList.add(new User(5,"小李","男"));
        userList.add(new User(7,"小李","男"));
        userList.add(new User(3,"小李","男"));
        for (User user:userList) {
            System.out.println(user.getId());
        }

ArraList的排序:

比较的对象类

package com.example.demo.model;

/**
 * @author AxeLai
 * @date 2019-04-22 18:47
 */

public class User {
    /** 编号 */
    private int id;
    /** 姓名 */
    private String name;
    /** 年龄 */
    private String sex;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public User(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }
}

比较的实现方法

    private static void sortList() {
        List<User>userList = new ArrayList<>();
        userList.add(new User(1,"小李1","男"));
        userList.add(new User(5,"小李2","男"));
        userList.add(new User(7,"小李3","女"));
        userList.add(new User(3,"小李4","男"));
        //通过sort方法的第二个参数传入一个Comparator接口对象 相当于是传入一个比较对象大小的算法到sort方法中
        Collections.sort(userList,new Comparator<User>() {
            @Override
            public int compare(User user0, User user1) {
                //降序排序
                return user1.getId()-user0.getId();
            }
        });
        for (User user:userList) {
            System.out.println(user.getId());
        }
    }

相关文章

  • 集合

    java集合接口有List,Set,Map。 List和Set都实现了Collection(对集合排序,遍历)接口...

  • 2019-01-01

    基于List、Set集合,及工具类Collections集合元素排序整理 List集合 1.1 List集合介绍 ...

  • 集合list和set排序的实现

    List、Set的相同点和区别 List和Set继承了Collection接口。List以特定索引来存取元素,可以...

  • python set集合,排序输出

    python set集合,排序输出 列表-->集合-->列表-->list sort() == 集合-->列表--...

  • Android面试Java基础篇(一)

    问:Java集合类List,Map,Set相关的实现原理。 答:List和Set都是Collection的子类 ...

  • kotlin中的集合

    集合Java中常用的集合主要是List、Set和Map接口,List的实现类是ArrayList和LinkedLi...

  • Map接口

    Java常用集合为List,Set和Map,其中List和Set都实现了Collection接口,而Map并没有 ...

  • Dart基础:可迭代的集合

    Dart中的集合类型 Dart中常用的集合类型:List、Set、Map。其中List、Set实现了Iterabl...

  • map的一些事儿

    Map没法直接遍历,因为没有实现collection集合。不像List和Set因为实现了collection集合,...

  • 那些容易被遗忘的 Redis 功能

    1. 强大的排序 Redis 的 SORT 命令可以对列表(List)、集合(Set)和有序集合(Sorted S...

网友评论

    本文标题:集合list和set排序的实现

    本文链接:https://www.haomeiwen.com/subject/ipongqtx.html