[个人原创]关于java中对象排序的一些探讨(三)
2014-03-07 14:15
204 查看
这篇文章由十八子将原创,转载请注明,并标明博客地址:http://www.cnblogs.com/shibazijiang/
对对象排序也可以使用Guava中的Ordering类。
构造Ordering类,可以使用直接实现Ordering类中comparator方法,也可以由from()方法传入一个比较器,具体可以参考Guava文档。
输出结果不再给出。
对对象排序也可以使用Guava中的Ordering类。
构造Ordering类,可以使用直接实现Ordering类中comparator方法,也可以由from()方法传入一个比较器,具体可以参考Guava文档。
package Test; import com.google.common.base.Function; import com.google.common.collect.Ordering; import java.util.ArrayList; import java.util.Comparator; import java.util.List; /** * Created By IntelliJ IDEA * User:LeeShuai * Date:3/6/14 * Time:9:29 PM */ class Person { private String name; private int age; //构造器 public Person() { } public Person(String name, int age) { this.setAge(age); this.setName(name); } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class OrderingTest { public static void main(String[] args) { //直接实现抽象类 Ordering<Person> ordering=new Ordering<Person>() { @Override public int compare(Person o1,Person o2) { return o2.getAge()>o1.getAge()? 1:(o2.getAge()<o1.getAge()? -1:(o2.getName().compareTo(o1.getName()))); } }; //由一个比较器实现 Ordering<Person> ordering1=Ordering.from(new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { return o2.getAge()>o1.getAge()? 1:(o2.getAge()<o1.getAge()? -1:(o2.getName().compareTo(o1.getName()))); } }); //带函数参数的Ordering Ordering<Person> ordering2=Ordering.from(new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.compareTo(o1); } }).onResultOf(new Function<Person, String>() { @Override public String apply(Person person) { return person.getName(); } }); List<Person> list=new ArrayList<Person>(); list.add(new Person("a", 24)); list.add(new Person("b", 23)); list.add(new Person("c", 22)); list.add(new Person("d", 21)); list.add(new Person("e", 20)); list.add(new Person("f", 19)); ordering2.sortedCopy(list); for(Person person:list){ System.out.println(person.getName()+":"+person.getAge ()); } } }
输出结果不再给出。
相关文章推荐
- [个人原创]关于java中对象排序的一些探讨(二)
- [个人原创]关于java中对象排序的一些探讨(一)
- 关于java中的对象排序
- 关于Java中Scanner对象的hasNext()方法对实现Readable接口的对象中的read()方法调用的探讨
- java从入门到入宫(关于学习的一些个人意见)
- 个人关于存储不同类型对象进行碰撞检测的一些思路
- 关于Java中Scanner对象的hasNext()方法对实现Readable接口的对象中的read()方法调用的探讨
- 关于Java中Scanner对象的hasNext()方法对实现Readable接口的对象中的read()方法调用的探讨
- JAVA学习笔记(5)_____String对象比较的一些个人见解
- 关于页面跳转的一些总结 浏览器对象与页面刷新 -- JAVA web
- 【原创】Java 对 List 内对象根据对象属性进行排序
- 原创:关于一些Java开发工具的使用心得(不断更新)
- (转)关于java中的一些IO以及对象的可序列化
- Java中关于对象串行化的一些讨论
- 关于如何在java中实现中文首字母索引排序的问题 2016-08-25 15:14 86人阅读 评论(0) 收藏 举报 分类: Java(19) 版权声明:本文为博主原创文章,未经博主允许不得转载
- Java中关于字符串对象一些易错的点
- 【原创】关于操作符重载的一些个人理解
- Java 关于对象之间的比较 , 容器中的数据的排序
- 关于java对象内存的一些总结
- 关于java的一些小问题,list中添加对象,java基本数据类型对象