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

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
分享到:
评论

相关推荐

    逐字比较器逐字比较器逐字比较器

    在IT领域,逐字比较器是一种用于比较两个文本或数据流的工具,它按照字节或字符逐个进行比较,以确定它们是否完全相同或存在差异。这种技术广泛应用于文本编辑器、版本控制系统、文件比较软件以及编程语言的字符串...

    Java自定义比较器实现中文排序

    本篇文章将深入探讨如何使用Java自定义比较器(Comparator)来实现中文字符串的正确排序。 首先,我们要了解`compareTo()`方法,这是Java中的一个基础方法,位于`java.lang.Comparable`接口中。`compareTo()`用于比较...

    Java综合实验---学生信息管理系统

    - 对集合中的数据进行排序,可以使用Java内置的`Collections.sort()`方法,或者自定义比较器`Comparator`来实现。例如,我们可以按照学号或成绩对学生进行升序或降序排列。 5. **IO流**: - 使用`java.io`包中的...

    C#与JAVA的比较

    ### C#与JAVA的比较 #### 相同之处 C#与JAVA这两种现代高级编程语言在许多方面都有着显著的相似之处。这些相似性主要源于两者的设计理念和技术背景,特别是它们都受到了C++语言的重要影响。 1. **平台独立性**:...

    Java和PHP的web开发技术比较

    Java有内置的安全模型,可以防止内存泄漏和XSS、SQL注入等攻击,但配置复杂。PHP则依赖于开发者自身的安全意识,通过使用预处理语句、过滤用户输入等方式来保障安全。 总的来说,选择Java还是PHP,取决于项目的具体...

    JAVA_高级特性(hashCode,clone,比较器,Class反射,序列化)

    #### 三、比较器(Comparator) 在 Java 中,可以使用 `Comparator` 接口来定义对象的排序规则。`Comparator` 是一个函数式接口,可以通过实现它的 `compare` 方法来自定义比较逻辑。例如,如果我们想按照年龄升序...

    java比较器的常见用法.pdf

    在Java编程语言中,`Comparable`接口扮演着重要的角色,主要用作对象比较和排序的基础。这个接口定义了一个单一的方法`compareTo()`,使得实现了该接口的类的对象可以根据特定的规则进行比较。`Comparable`接口通常...

    Java排序算法包 支持自定义比较条件

    总的来说,这个"Java排序算法包"为开发者提供了一个强大的工具,不仅包含了多种经典的排序算法,还允许用户通过自定义比较器来满足个性化排序需求,从而在不同的场景下都能实现高效且准确的排序。

    Java性能优化比较

    理解锁的概念,包括内置锁(synchronized)、显式锁(Lock),以及读写锁(ReentrantReadWriteLock),可以帮助我们编写更安全、高效的并发代码。另外,使用并发容器,如ConcurrentHashMap,比传统的同步容器(如...

    JAVA语言文本编辑器

    JAVA语言文本编辑器是一款功能强大的文本处理工具,与Windows系统内置的文本编辑功能相媲美。在编程领域,一个良好的文本编辑器对于开发者来说至关重要,因为它可以极大地提高编写、调试和管理代码的效率。JAVA语言...

    java文件对比工具

    3. **KDiff3**:跨平台的文件和目录比较器,可以处理三向合并,适用于版本控制系统的冲突解决。 4. **JDiff**:专门针对Java源代码的比较工具,它可以生成人类可读的HTML格式的差异报告。 5. **IntelliJ IDEA / ...

    C#与java比较

    ### C#与Java比较 #### 引言 随着软件工程的发展,不同的编程语言因其独特的特性和优势被广泛应用于各类项目中。C# 和 Java 作为两种面向对象的编程语言,都具备了现代化语言的特性,如动态调度、垃圾回收机制等。...

    飞龙Java工具类

    CollectionsUtil工具类可能是对Java内置的`java.util.Collections`类的扩展,提供了更高级或定制化的集合操作。这可能包括但不限于:对集合进行排序、去重、合并、分割、查找、过滤等。例如,`CollectionsUtil.sort...

    Java下载器的简单实现及实时进度和速度获取

    在Java编程领域,开发一个下载器是常见的任务,特别是对于处理大文件或网络资源时。本文将深入探讨如何实现一个简单的Java下载器,并且重点讲解如何实现下载的实时进度显示和速度计算。以下是对这个主题的详细阐述:...

    Java常用工具类大全,工作5年精心整理.zip

    TreeMap则基于红黑树,保证了元素的排序性,可以按照自然顺序或自定义比较器顺序排序。 3. **`java.util.Date`与`java.time`包**:Date是早期的日期/时间API,而Java 8引入的`java.time`包提供了更现代、更易用的...

    Java中自然排序和比较器排序详解

    而比较器排序则是通过`Comparator`接口实现,允许我们灵活地定义排序规则,尤其适合对象没有内置排序逻辑或需要多种排序标准的场景。两者都是`Arrays.sort()`和`Collections.sort()`等排序方法的重要组成部分,帮助...

    对比Java中的Comparable排序接口和Comparator比较器接口

    Comparator是一个比较器接口,它提供了一种在类本身不支持排序的情况下控制对象次序的方式。通过实现Comparator接口,你可以创建一个独立于原始类的比较逻辑,这使得排序更灵活。Comparator接口包含两个方法:`...

    JAVA讲义 比较基础一级的东西

    13. **线程**:Java内置了对多线程的支持,可以创建Thread对象或实现Runnable接口来并发执行任务。 14. **网络编程**:Java提供了Socket和ServerSocket类,支持TCP/IP通信,可以用来构建客户端-服务器应用程序。 ...

    比较器工具类

    `Comparator.reverseOrder()`用于创建一个逆序的比较器,而`Collections.reverseOrder()`通常用于对列表进行反向排序。两者可以结合使用以实现反向排序,例如: ```java Collections.sort(list, Comparator.reverse...

Global site tag (gtag.js) - Google Analytics