- 浏览: 347002 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (238)
- j2ee (22)
- mysql (14)
- hibernate (2)
- struts (3)
- spring (7)
- php (28)
- cakephp (12)
- pattern (0)
- 数据结构 (0)
- python (17)
- redis (1)
- sql (2)
- ibatis (1)
- jquery (3)
- 测试 (3)
- linux (37)
- solr (3)
- oracle (5)
- jira (5)
- 版本控制 (3)
- xp (1)
- IDE (3)
- apache (4)
- hadoop (2)
- freemarker (2)
- maven (5)
- 项目管理 (2)
- UML (1)
- Django (6)
- 正则 (1)
- Scrapy (1)
- 文档管理 (3)
- 项目集成 (8)
- MQ (3)
- 架构 (1)
- HTML (1)
- IT (1)
- 云 (0)
- 应用服务器 (4)
- win 7 (1)
- thrift (1)
- 学习 (3)
- OpenStack (3)
- sqlserver (1)
- javascript (1)
- zabbix (3)
- IOS (1)
- rabbitmq (1)
- springcloud (2)
最新评论
-
xushenkun4:
至今仍然有这个bug,0.9.1无法传输中文utf8。
thrift使用出现诡异问题 -
feiniao2029:
[i][/i][u][/u]引用
spring 配置init方法 -
wt811004:
非常感谢朋友慷慨指导
dotproject项目管理工具使用 -
hackpro:
这将是一个经典,就像大话西游...
javaeye怀旧 -
raymond2006k:
个人更偏好 Velocity。我觉得还有个对比点,就是编程方式 ...
jsp freemarker velocity 比较
1. Comparable接口与Comparator接口的对比
comparable指定了比较方法在待比较的类中,直接利用Collections.sort()或Arrays.sort()排序就可以了。
comparator则是指定了比较的行为,可以作为Collections.sort()或Arrays.sort()方法的参数
2.代码:
Comparable
Comparator
Datas
Test
comparable指定了比较方法在待比较的类中,直接利用Collections.sort()或Arrays.sort()排序就可以了。
comparator则是指定了比较的行为,可以作为Collections.sort()或Arrays.sort()方法的参数
2.代码:
Comparable
public class Person implements Comparable<Person> { private Integer id; private String name; private Integer age; public Person() { } public Person(Integer id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public Integer getId() { return id; } public void setId( Integer id ) { this.id = id; } public String getName() { return name; } public void setName( String name ) { this.name = name; } public Integer getAge() { return age; } public void setAge( Integer age ) { this.age = age; } @Override public int compareTo( Person o ) { return this.getAge().compareTo( o.getAge() ); } }
Comparator
import java.util.Comparator; public class PersonComparetor implements Comparator<Person> { @Override public int compare( Person o1, Person o2 ) { return o1.getAge().compareTo( o2.getAge() ); } }
Datas
import java.util.ArrayList; import java.util.List; public class PersonsSingle { private static List<Person> persons = null; private PersonsSingle() { } public static List<Person> getPersons(){ persons = new ArrayList<Person>(); persons.add( new Person( 1, "张三",26 ) ); persons.add( new Person( 2, "王五",20 ) ); persons.add( new Person( 3, "赵六",29 ) ); persons.add( new Person( 4, "李四",26 ) ); persons.add( new Person( 5, "周公",50 ) ); return persons; } }
Test
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class CollectionsTest { public void sort(){ double array[] = {112, 111, 23, 456, 231 }; List list = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } Collections.sort(list); for (int i = 0; i < array.length; i++) { System.out.println(list.get(i)); } System.out.println(); } public void sortOne(){ List<Person> list = PersonsSingle.getPersons(); Collections.sort(list); for (Person p: list) { System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); } System.out.println(); } public void sortTwo(){ List<Person> list = PersonsSingle.getPersons(); Collections.sort(list, new PersonComparetor()); for (Person p: list) { System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); } System.out.println(); } public void shuffling(){ List<Person> list = PersonsSingle.getPersons(); //Collections.shuffling(list); Collections.shuffle(list); for (Person p: list) { System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); } System.out.println(); } public void reverse(){ List<Person> list = PersonsSingle.getPersons(); Collections.reverse( list ); for (Person p: list) { System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); } System.out.println(); } public void fill(){ List<Person> list = PersonsSingle.getPersons(); Collections.fill( list, new Person(6,"傻根", 34) ); for (Person p: list) { System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); } System.out.println(); } public void minOne(){ List<Person> list = PersonsSingle.getPersons(); Person p = Collections.min( list ); System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); System.out.println(); } public void minTwo(){ List<Person> list = PersonsSingle.getPersons(); Person p = Collections.min( list, new PersonComparetor() ); System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); System.out.println(); } public void maxOne(){ List<Person> list = PersonsSingle.getPersons(); Person p = Collections.max( list ); System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); System.out.println(); } public void maxTwo(){ List<Person> list = PersonsSingle.getPersons(); Person p = Collections.max( list, new PersonComparetor() ); System.out.println(p.getId() + "\t" + p.getName() + "\t" + p.getAge()); System.out.println(); } public void lastIndexOfSubList(){ //int count = Collections.lastIndexOfSubList(list,li); double array[] = {112, 111, 23, 456, 231 }; List list = new ArrayList(); List li = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } double arr[] = {111}; String str[] = {"dd","aa","bb","cc","ee"}; for(int j=0;j<arr.length;j++){ li.add(new Double(arr[j])); } int locations = Collections.lastIndexOfSubList (list,li); System.out.println("====="+ locations); } public void indexOfSubList(){ //int count = Collections.indexOfSubList(list,li); double array[] = {112, 111, 23, 456, 231 }; List list = new ArrayList(); List li = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } double arr[] = {111}; String str[] = {"dd","aa","bb","cc","ee"}; for(int j=0;j<arr.length;j++){ li.add(new Double(arr[j])); } int locations = Collections.indexOfSubList(list,li); System.out.println("====="+ locations); } public void rotate(){ double array[] = {112, 111, 23, 456, 231 }; List list = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } Collections.rotate(list,-1); for (int i = 0; i <list.size(); i++) { System.out.println("list[" + i + "]=" + list.get(i)); } } /** * @desc * @param args */ public static void main( String[] args ) { // TODO Auto-generated method stub CollectionsTest test = new CollectionsTest(); //排序 test.sort(); test.sortOne(); test.sortTwo(); //混排 test.shuffling(); //反转 test.reverse(); //填充 test.fill(); //最小 test.minOne(); test.minTwo(); //最大 test.maxOne(); test.maxTwo(); // test.lastIndexOfSubList(); // test.indexOfSubList(); // test.rotate(); } }
发表评论
-
BigDecimal.setScale 处理java小数点
2013-01-24 13:48 709BigDecimal.setScale()方法用于格式化小数点 ... -
test
2012-08-17 12:39 0testa -
Tomcat内存溢出的三种情况及解决办法分析
2012-08-13 14:44 939Tomcat内存溢出的三种 ... -
java 数据格式化
2012-03-16 10:59 9691. 数字数据格式化 import java.te ... -
java URL encoding and decoding
2012-03-16 10:56 16731. URL编码 java提供了URLEncoder,URLD ... -
java面试题
2012-02-22 18:21 934JAVA面试题集 基础知识: 1.C++或Java ... -
Object类有哪些方法
2012-02-22 18:05 55691. 今天看了一个帖子,说某个公司面试题中问到Object类有 ... -
Java 调用cmd.exe命令
2011-12-29 15:16 1185public class Test { ... -
学习Java的各大网站
2011-12-22 09:03 749java 网址大全 http://www.java1995.c ... -
XML解析之DOM4J
2011-12-26 11:14 9431. 简介 java的xml解析分为: Dom ... -
jvm classloader知识
2011-12-23 10:26 8771. jvm classloader 分 bootstra ... -
下载servlet
2011-12-14 17:42 886public class DownloadServlet ... -
日期工具类
2011-12-14 17:40 1339日期工具类 public class ... -
怎样方便的读取map的key和value
2011-12-14 09:51 12811.方法一 public void getKV(){ ... -
java环境
2011-12-14 09:33 736java环境 1.Windows eg: 在环境变 ... -
当前时间毫秒转换为日期、字符串
2011-12-08 14:27 2605当前时间毫秒转换为日期、字符串 /** ... -
java集合结构图
2011-12-08 12:42 491java集合结构图 -
javaeye怀旧
2011-04-02 10:25 1045一.图片1 二.图片2 -
用 for/in 在 Java 5.0 中增强循环
2010-09-20 10:23 832for/in 循环通常叫作 增强的 for 或者 f ... -
j2ee 基本操作
2010-08-03 15:35 7391.字符串操作 String.format("u ...
相关推荐
通过简单的例子初步了解Comparable和Comparator的使用,注释很详细
comparator接口与Comparable接口的区别
Comparable和Comparator接口都可用作普通意义上对象间的比大小,但两个接口在实例化方面的用法不尽相同,接下来我们就来详细对比Java中的Comparable排序接口和Comparator比较器接口
Comparable&Comparator区别,看完就明白了
java排序Comparator和Comparable
1.Comparable详解 1.1Comparable概述 ...此 接口只有一个方法compareTo,比较此对象与指定对象的顺序,如果该对象小 于、等于或大于指定对象,则分别返回负整数、零或正整数。 对于String类实现了这个Comparab
详细的介绍了Java中Comparable与Comparator的区别
Comparable与Comparator的区别Java开发Java经验技巧共3页.pdf.zip
本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧
主要介绍了详解Java中Comparable和Comparator接口的区别的相关资料,希望通过本文大家能彻底掌握这部分内容,需要的朋友可以参考下
java通过Comparable接口实现字符串比较大小排序的简单实例
1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...
本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明
主要介绍了Java Comparable和Comparator对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了java 中Comparable与Comparator详解与比较的相关资料,需要的朋友可以参考下
主要介绍了Java 比较接口comparable与comparator区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
教你学会Comparator和Comparable
java.lang.Comparable和java.util.Comparator是两个容易混淆的接口,两者都带有比较的意思,那么两个接口到底有什么区别,分别在什么情况下使用呢? Comparable Comparable是java.lang包下面的接口,lang包下面可以...
要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode