List对象去重和按照某个字段排序的实现方法

1、List<Object>去重

People类

public class People { 

  private int id;
  private String name;
  private Date createDate; 

  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 Date getCreateDate() {
    return createDate;
  } 

  public void setCreateDate(Date createDate) {
    this.createDate = createDate;
  } 

} 

main方法

public static void main(String[] args) throws Exception{
    List<People> list = new ArrayList<People>();
    People p1 = new People();
    p1.setId(1);
    p1.setName("赵");
    list.add(p1);
    People p2 = new People();
    p2.setId(2);
    p2.setName("钱");
    list.add(p2);
    People p3 = new People();
    p3.setId(3);
    p3.setName("孙");
    list.add(p3);
    People p4 = new People();
    p4.setId(4);
    p4.setName("李");
    list.add(p4);
    People p5 = new People();
    p5.setId(5);
    p5.setName("周");
    list.add(p5);
    list.add(p1);
    for(People p : list){
      System.out.println(p);
    }
    System.out.println("==========================");
    Set<People> set = new HashSet<People>(list);
    list.clear();
    list.addAll(new ArrayList<People>(set));
    for(People p : list){
      System.out.println(p);
    }
  } 

2、List<Object>按照日期字段排序

自定义Comparator

public class MyComparator implements Comparator<People> { 

  @Override
  public int compare(People p1, People p2) {
    return p1.getCreateDate().compareTo(p2.getCreateDate());
  } 

} 

main方法

public static void main(String[] args) throws Exception{
    List<People> list = new ArrayList<People>();
    People p1 = new People();
    p1.setId(1);
    p1.setName("赵");
    p1.setCreateDate(new Date(new Date().getTime() + 1000));
    list.add(p1);
    People p2 = new People();
    p2.setId(2);
    p2.setName("钱");
    p2.setCreateDate(new Date(new Date().getTime() + 8000));
    list.add(p2);
    People p3 = new People();
    p3.setId(3);
    p3.setName("孙");
    p3.setCreateDate(new Date(new Date().getTime() + 7000));
    list.add(p3);
    People p4 = new People();
    p4.setId(4);
    p4.setName("李");
    p4.setCreateDate(new Date(new Date().getTime() + 5000));
    list.add(p4);
    People p5 = new People();
    p5.setId(5);
    p5.setName("周");
    p5.setCreateDate(new Date(new Date().getTime() + 6000));
    list.add(p5);
    for(People p : list){
      System.out.println(p.getId());
    }
    //1,2,3,4,5
    System.out.println("=======================");
    Collections.sort(list, new MyComparator());
    //1,4,5,3,2
    for(People p : list){
      System.out.println(p.getId());
    }
  } 

以上这篇List对象去重和按照某个字段排序的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java中List对象排序通用方法

    本文实例讲述了java中List对象排序通用方法.分享给大家供大家参考.具体分析如下: 在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询.如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能. 只要把第一次查出来的结果存放在session中,就可以对list重新排序了.一般对list排序可以使用Collections.sort(list),但如果list中包含是一个对象的话,这种方法还是行不通的.那要怎么排序

  • List集合对象中按照不同属性大小排序的实例

    实例如下: package com.huad.luck; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { Person p = new Person(); p.setName("tom"); p.

  • java list去重操作实现方式

    Java中的List是可以包含重复元素的(hash code 和equals),那么对List进行去重操作有两种方式实现: 方案一:可以通过HashSet来实现,代码如下: 复制代码 代码如下: class Student { private String id; private String name; public Student(String id, String name) { super(); this.id = id; this.name = name; } @Override pu

  • List对象去重和按照某个字段排序的实现方法

    1.List<Object>去重 People类 public class People { private int id; private String name; private Date createDate; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(S

  • Android List(集合)中的对象以某一个字段排序案例

    在Android开发中,有时我们需要对一个对象的集合按照某一个字段进行排序, Bean public class Student { private int studentId; private String studentName; private int age; public Student(int studentId , String studentName, int age){ this.studentId=studentId; this.studentName=studentName

  • JS根据json数组多个字段排序及json数组常用操作

    js 根据json数组多个字段排序的实现代码如下所示: /**数组根据数组对象中的某个属性值进行排序的方法 * 使用例子:newArray.sort(sortByArr(['number'],false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序 * @param attr 排序的属性 ['name','sex'...],根据一个字段或者多个字段排序 * @param rev true表示升序排列,false降序排序 * */ function sortByA

  • Java中List集合对象去重及按属性去重的8种方法

    最近在写一些关于java基础的文章,但是我又不想按照教科书的方式去写知识点的文章,因为意义不大.基础知识太多了,如何将这些知识归纳总结,总结出优缺点或者是使用场景才是对知识的升华.所以我更想把java相关的基础知识进行穿针引线,进行整体上的总结. 总结java中创建并写文件的5种方式 总结java从文件中读取数据的6种方法 总结java创建文件夹的4种方法及其优缺点 总结java中删除文件或文件夹的7种方法 总结java中文件拷贝剪切的5种方式 比如之前我已经写了上面的这些内容,如果对java基

  • SQL group by去重复且按照其他字段排序的操作

    需求: 合并某一个字段的相同项,并且要按照另一个时间字段排序. 例子: 一开始用 select city from table group by city order by date desc 会报错因为date没有包含在聚合函数或 GROUP BY 子句中 然后用将date放入group by中: select city from table group by city,date order by date desc 得到结果 但是得到的结果还是有重复的,没有解决 如果不按照时间排序,就会影响

  • java8 stream多字段排序的实现

    很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理 使用java8新特性,下面先来点基础的 List<类> list; 代表某集合 //返回 对象集合以类属性一升序排序 list.stream().sorted(Comparator.comparing(类::属性一)); //返回 对象集合以类属性一降序排序 注意两种写法 list.stream().sorted(Comparator.comparing(类::属性一).reversed());/

  • java8 stream的多字段排序实现(踩坑)

    关于java8 的stream排序用法这里不做多说,这里介绍下曾经在多字段排序时遇到过的一个坑. 需求:需要根据id去分组,然后取出每组中行号最大的一个对象值. 想到可以利用stream的多字段排序,先按id去排,再看行号去排,demo代码如下: class Tt{ private int id; private int line; public Tt(int id, int line) { this.id = id; this.line = line; } public int getId()

  • MyBatis-plus数据库字段排序不准确的解决

    目录 MyBatis-plus数据库字段排序不准确 例如:12还没有8,4,2大,这就很郁闷了 解决方案 Mybatis-plus遇到的坑 1. 数据库映射枚举 2. 自增主键 3. mybatis嵌套查询 4. 用updateWrapper的update做更新操作 5. 使用lambaQuery时 6. Integer判断为空 7. 基础类型的判断 8. 事务 9. mybatis 配置了多个数据库 MyBatis-plus数据库字段排序不准确 今天用mybatis-plus进行开发的时候遇到

  • JS判断是否为JSON对象及是否存在某字段的方法(推荐)

    实例如下: $.ajax({ type: 'POST', url: url, success(function(data){ //判断是否为JSON对象 if(typeof(data) == "object" && Object.prototype.toString.call(data).toLowerCase() == "[object object]" && !data.length){ alert("is JSON 0

随机推荐