`
naouguhtaeyeti
  • 浏览: 19950 次
文章分类
社区版块
存档分类
最新评论

java 内置的比较器

    博客分类:
  • java
阅读更多
在java 里,有一些内置的比较器,比如CaseInsensitiveComparator ,ReverseComparator。利用这两个内置的比较器可以完成一些另外的排序需求:比如String 忽略大小写排序,反向排序,及这两者组合的排序。

CaseInsensitiveComparator 这个比较器定义在String类里,是一个嵌套类。
下面是它的源代码类定义
 private static class CaseInsensitiveComparator
                         implements Comparator<String>, java.io.Serializable


ReverseComparator 是定义在Collections 里。
private static class ReverseComparator
        implements Comparator<Comparable<Object>>, Serializable


下面是使用这两个比较器的例子:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;


public class TestSort {
	public static void main(String[] args) {
		testSort();
	}
	
	public static void testSort(){
		// use the jdk provided Comparator sorting 
		String[] strArray = new String[]{"hello","Hello","java","Java"};
		
		// using the normal sort
		Arrays.sort(strArray);
		display(strArray,"Normal");
		
		// sort with  ignoring the case sensitive  		
		Arrays.sort(strArray,String.CASE_INSENSITIVE_ORDER);
		display(strArray,"CaseInsensitive");
		// reverse the order 
		Arrays.sort(strArray, Collections.reverseOrder());
		display(strArray,"Reverse");
		
		// reverse the ignore case sensitive order
		Arrays.sort(strArray, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
		display(strArray,"Reverse Insen");
	}
	
	public static void display(String[] strArray,String method){
		System.out.println("Sorting Result using "+ method);
		for(String string:strArray){
			System.out.println(string);
		}
	}
}




运行结果:

Sorting Result using Normal
Hello
Java
hello
java
Sorting Result using CaseInsensitive
Hello
hello
Java
java
Sorting Result using Reverse
java
hello
Java
Hello
Sorting Result using Reverse Insen
java
Java
hello
Hello
分享到:
评论

相关推荐

    JavaAPI1.6中文chm文档 part1

    java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 ...

    java[游戏必备]

    这主要是因为Java本身被编译之后,并不是直接产生可执行的码,而是产生一种中间码叫作 ByteCode,这种码必需在透过 Java 的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读...

    JavaAPI中文chm文档 part2

    java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 ...

    Java大型智慧物业管理系统源码

    协同办公 工作流设计器、我的待办已办、报修流程、投诉流程 后端运行 1、导入到Eclipse,菜单 File -&gt; Import,然后选择 Maven -&gt; Existing Maven Projects,点击 Next&gt; 按钮,选择工作目录,然后点击 Finish 按钮,...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    GeoHash是目前比较主流实现位置服务的技术,用最简洁的Java实现GeoHash算法.zip

    多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过...

    java基础案例与开发详解案例源码全

    3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 ...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

     一.JAVA程序传送到手机的方法:

    后,然后通过读卡器,数据线,蓝牙,红外线传输JAVA程序到手机.具体方法说明如下.  1.手机上网下载:  通过手机上网下载以及使用短信定购的方式,直接在手机的个人文档或者应用程序中找 到(根据手机各不相同),无需...

    java 面试题 总结

    Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byte...

    一个开源的java博客系统

    比较完备的评论系统,内置的评论系统还需要不断完善,另外还支持部分三方评论系统(如Valine,Disqus等),可以随意切换,支持任何主题。 完备的模板(主题)系统(目前已有四款主题),可以随意切换主题而不需要...

    Java面试宝典-经典

    11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态INCLUDE与静态INCLUDE的区别? 89 15、两种跳转方式分别是什么?有什么区别? ...

    Java源代码反编译工具

    JAVA,比较出名的有小颖的反编译专家 XJad(Java源代码反编译工具) V2.2 XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2。 XJad可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*....

    Java面试宝典2010版

    11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态INCLUDE与静态INCLUDE的区别? 89 15、两种跳转方式分别是什么?有什么区别? ...

    java web 开发详解

    太过灵活——没有公共的父控制器 没有内置的Ajax支持 Stripe  优点: 不需要书写XML配置文件 良好的学习文档 社区成员很热心 缺点: 社区比较小 不如其他的项目活跃 ActionBean里面的URL是硬编码的 Struts 2  优点...

    Java Web程序设计教程

    6.2.1struts2内置类型转换器 117 6.2.2引用类型的转换方式 117 6.2.3特殊对象的类型转换 118 6.2.4类型转换的错误处理 121 6.3输入校验 123 6.3.1输入校验的必要性 123 6.3.2编程方式实现输入校验 125 6.3.3...

    java面试题

    38. 比较truncate和delete 命令 18 39. 解释$ORACLE_HOME 和$ORACLE_BASE的区别? 19 40. session与cookie的区别和联系? 19 41. Statement和PrepareStatement的区别 19 42. JSP的内置对象及方法。 19 43. JSP的常用...

    java高效学习之路-过来人经验

    不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的...

    Java™ Servlet 规范.

    1.4 Servlet 与其他技术的比较 ........................................................................................................................14 1.5 与 Java 平台企业版的关系 ......................

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  6.4.5 native标识符生成器  6.5 映射自然主键  ...

Global site tag (gtag.js) - Google Analytics