自己实现一个list比较器 实现Comparator()接口
/**
* @author lizhibiao
* @date 2018/11/27 17:21
*/
public class User
{
private String userName;
private int age;
private int cutScore;
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public int getCutScore() {
return cutScore;
}
public void setCutScore(int cutScore) {
this.cutScore = cutScore;
}
}
public class UserComparator implements Comparator<User> {
@Override
public int compare(User o1, User o2)
{
if (o1.getAge() > o2.getAge())
{
return -1;
}
else if (o1.getAge() < o2.getAge())
{
return 1;
}
else if (o1.getCutScore() < o2.getCutScore())
{
return 1;
}
else if (o1.getCutScore() > o2.getCutScore())
{
return -1;
}
return 0;
}
}
这里注意:
if (o1.getAge() > o2.getAge())
{
return -1;
}
else if (o1.getAge() < o2.getAge())
{
return 1;
}
else if (o1.getCutScore() < o2.getCutScore())
{
return 1;
}
else if (o1.getCutScore() > o2.getCutScore())
{
return -1;
}
return 0;
public static void main(String[] args)
{
User user1 = new User();
user1.setUserName("小二");
user1.setAge(10);
user1.setCutScore(99);
User user2 = new User();
user2.setUserName("清水");
user2.setAge(12);
user2.setCutScore(98);
User user3 = new User();
user3.setUserName("小李");
user3.setAge(10);
user3.setCutScore(100);
List<User> list = new ArrayList<>();
list.add(user1);
list.add(user2);
list.add(user3);
Collections.sort(list, new UserComparator());
for (User user : list)
{
System.out.println(user.getUserName()+" "+user.getAge()+" "+user.getCutScore());
}
}
自己实现一个list比较器 实现Comparator()接口的更多相关文章
- Java 之 比较器( Comparator接口与 Comparable 接口)
一.定制排序:java.util.Comparator 接口 强行对某个对象 collection 进行整体排序 的比较函数.可以将 Comparator 传递给 sort 方法(如 Collecti ...
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.Ru ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- Java.lang.Comparable接口和Java.util.Comparator接口的区别
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 1.Com ...
- java Comparable 和 Comparator接口区别
Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”. 即然实现Comparable接口的类支持排序,假设现在存在“实现C ...
- JAVA Comparator 接口排序用法
java的比较器有两类,分别是Comparable接口和Comparator接口. 在为对象数组进行排序时,比较器的作用非常明显,首先来讲解Comparable接口. 让需要进行排序的对象实现Comp ...
- Comparable比较器和Comparator比较器
1.Comparable比较器 在Arrays类中存在sort()排序方法,此方法可以直接对对象数组进行排序. public static void sort(Object[] a 根据元素的自然顺序 ...
- 比较器Comparable Comparator
一. Comparable Comparable 是排序接口,若一个类实现了 Comparable 接口,就意味着该类支持排序.实现了Comparable 接口的类的对象的列表或者数组可以通过 Col ...
- 比较器:Compare接口与Comparator接口区别与理解
一.实现Compare接口与Comparator接口的类,都是为了对象实例数组排序的方便,因为可以直接调用 java.util.Arrays.sort(对象数组名称),可以自定义排序规则. 不同之处: ...
随机推荐
- java 8 foreach获取索引
当 forEach 需要索引 https://segmentfault.com/a/1190000007881498 或者采用 List<string> stringList = new ...
- 并发编程的锁机制:synchronized和lock
1. 锁的种类 锁的种类有很多,包括:自旋锁.自旋锁的其他种类.阻塞锁.可重入锁.读写锁.互斥锁.悲观锁.乐观锁.公平锁.可重入锁等等,其余就不列出了.我们重点看如下几种:可重入锁.读写锁.可中断锁. ...
- 红帽Linux故障定位技术详解与实例(2)
红帽Linux故障定位技术详解与实例(2) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...
- 性能优化(1+N,list与iterator,缓存,事务)
1.注意session.clear()的运用,尤其是不断分页循环的时候 A 在一个大集合中进行遍历,取出其中含有敏感字的对象 B 另一种形式的内存泄露. 2.1+N问题 问题描述:如@ManyToOn ...
- [洛谷P4040] AHOI2014 宅男计划
题目背景 自从迷上了拼图,JYY就变成了个彻底的宅男.为了解决温饱问题,JYY不得不依靠叫外卖来维持生计. 问题描述 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第 ...
- 前端有用JavaScript技巧
数组去重 //法1 var arr = [1, 2, 3, 3, 4]; console.log(...new Set(arr)) // [1, 2, 3, 4] //法2 function SetA ...
- Vue:列表展开和收起(超过一定行数时显示‘查看更多’按钮)
前言:前端小白记录的一些小功能~ 公司开发中的小程序中有做任务签到的功能,这就涉及到了任务列表以及对任务列表的展开和收起功能,好了可以开始了,说多了就烦了 1.首先是css样式,因为设计稿上是超过两行 ...
- yum 安装 mongodb
1 .添加阿里源 vi /etc/yum.repos.d/mongodb.repo [mongodb-org] name=MongoDB Repository baseurl=http://mirro ...
- “M_PI_2”: 重复定义的宏
问题警告:“M_PI_2”: 重复定义的宏 分析:在Visual Studio上使用math.h库时与其他库数学库冲突,我们可以通过添加宏定义“_USE_MATH_DEFINES”来消除math.h定 ...
- luogu 3241 [HNOI2015]开店 动态点分治+二分+vector
独立写出来+想出来的,1.5h就切了~ 建立点分树,然后用 $vector$ 暴力存所有子节点,然后二分一下子就可以了. #include <cstdio> #include <ve ...