21xrx.com
2024-12-23 13:08:48 Monday
登录
文章检索 我的文章 写文章
关键词:Java、List、去重、排序、另一个字段大小
2023-06-11 08:42:36 深夜i     --     --

Java List去重排序:如何根据另一个字段的大小进行操作

Java List是开发中经常用到的数据结构,但由于重复数据的存在,我们经常需要对List进行去重操作,同时还需要对元素进行排序。在进行这些操作时,我们还需要考虑其他字段的大小。此篇文章将介绍如何使用Java代码实现List去重排序,并根据另一个字段的大小进行操作。

去重操作:

我们可以使用HashSet数据结构进行List去重操作,只需要将List元素添加到HashSet中,利用HashSet不允许重复元素的特性,得到一个去重后的List。下面是示例代码:


List list = new ArrayList<>();

list.add(1);

list.add(2);

list.add(3);

list.add(1);

list.add(2);

HashSet hashSet = new HashSet<>(list);

List newList = new ArrayList<>(hashSet);

System.out.println(newList);

输出:


[1, 2, 3]

排序操作:

我们可以使用Collections.sort()方法对List元素进行排序。下面是示例代码:


List list = new ArrayList<>();

list.add(3);

list.add(1);

list.add(2);

Collections.sort(list);

System.out.println(list);

输出:


[1, 2, 3]

根据另一个字段的大小进行操作:

在我们需要根据另一个字段的大小对List进行操作时,我们可以使用Comparator接口进行实现。首先定义一个Student类,包含两个属性name和score:


public class Student {

  private String name;

  private int score;

  public Student(String name, int score)

    this.name = name;

    this.score = score;

  

  public String getName()

    return name;

  

  public void setName(String name)

    this.name = name;

  

  public int getScore()

    return score;

  

  public void setScore(int score)

    this.score = score;

  

}

对List根据score字段从小到大进行排序的示例代码如下:


List list = new ArrayList<>();

list.add(new Student("小明", 85));

list.add(new Student("小红", 92));

list.add(new Student("小王", 78));

Collections.sort(list, new Comparator () {

  @Override

  public int compare(Student o1, Student o2) {

    return o1.getScore() - o2.getScore();

  }

});

System.out.println(list);

输出:


[Student score=78, Student score=85, Studentname='小红']

对List根据score字段从大到小进行排序的示例代码如下:


List list = new ArrayList<>();

list.add(new Student("小明", 85));

list.add(new Student("小红", 92));

list.add(new Student("小王", 78));

Collections.sort(list, new Comparator () {

  @Override

  public int compare(Student o1, Student o2) {

    return o2.getScore() - o1.getScore();

  }

});

System.out.println(list);

输出:


[Studentname='小红', Studentname='小明', Studentname='小王']

总结:

本文介绍了如何使用Java代码进行List去重排序,并根据另一个字段的大小进行操作。希望这对Java初学者有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复