- 浏览: 20640 次
文章分类
- 全部博客 (17)
- Struts (0)
- Servlet (1)
- Interview (1)
- Shell (1)
- java (5)
- Linux (0)
- ACM (1)
- 程序员 (0)
- Sprint (0)
- Spring (1)
- WEB (0)
- 学习方法 (0)
- JSP (0)
- other problems Collecting (0)
- Hibernate (0)
- Thread (1)
- AWT (0)
- 生活哲理 (0)
- IT 人物 (1)
- IT knowledge (0)
- 版本管理软件 (1)
- 深入java (0)
- Oracle (0)
- Activity (0)
- GUI (1)
- English (0)
- 网络编程 (0)
- Practice (0)
- 项目实践 (0)
- 金融 (0)
- 面试 (1)
- 新知识 (0)
- 温故旧知识 (0)
- 账户管理 (0)
- IT 警言 (1)
- 学习 (0)
- Strus (0)
- 问题 (0)
- 武术 (0)
- 经济 (0)
- 项目 (0)
- 项目构建工具 (0)
- 每天学习 (0)
- 面试题 (0)
- 编程实践-解题(Solution) (0)
- 领悟 (0)
- log (0)
- 编程 (0)
- 算法 (0)
- Java 学习 (0)
- 好好学习,天天进步-每一天的时间都一样,但是可以有不同的价值 (0)
- 幸福 (0)
- hibernate 实践笔记 (0)
- Spring 实践笔记 (0)
- 设计模式系列 (0)
- acm 练习总结 (0)
- JVM 学习 (0)
- 目标 (0)
- 人生准则 (0)
- 开源 框架 (0)
- AOP 学习系列 (0)
- java 网络编程 (0)
- 源码学习 (0)
- ClassLoader (0)
- 动态代理 (0)
- 开源项目 (0)
- 编码 (0)
- 我的生活领悟 (0)
- 事务安排 (0)
- 电话面试 (0)
- 学习笔记 (0)
- 开源软件学习 (0)
- PLSQL (0)
- 面试准备 (0)
- 日记 (0)
- 离职找工作日记 (0)
- hibernate 学习 (0)
- tomcat 源码学习 (0)
- 成长日记 (0)
- 算法学习-从概念开始一点一点的学习 (0)
- Spring MVC (0)
- 进步的人生 (0)
- 一定要坚定 (0)
- 程序员的实力 (0)
- 学习进步-日知其所亡,月无忘其所能,学无先后,快慢,达者为先,通者为先。 (0)
- 日知其所亡,月无忘其所能,学无先后,快慢,达者为先,通者为上 (0)
- 公积金 (0)
- test (0)
在java 里,有一些内置的比较器,比如CaseInsensitiveComparator ,ReverseComparator。利用这两个内置的比较器可以完成一些另外的排序需求:比如String 忽略大小写排序,反向排序,及这两者组合的排序。
CaseInsensitiveComparator 这个比较器定义在String类里,是一个嵌套类。
下面是它的源代码类定义
ReverseComparator 是定义在Collections 里。
下面是使用这两个比较器的例子:
运行结果:
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
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
发表评论
-
java 每日学习
2012-06-22 11:57 0今天看了简单工厂模式与工厂方法模式,然后看的过程中碰到一些问题 ... -
java RTTI- runtime type information (think in java )
2012-06-18 23:53 0Class 类 equals 方法比较与 instanceof ... -
ant 使用
2012-05-30 00:39 0ant : a neat tool 1.下载 ant ht ... -
java multithread
2012-05-24 13:24 0java 多线程 使用condition 来控制协调。 区别 ... -
java Queue
2012-05-24 10:39 0java Collection Queue 的实现及 Pri ... -
网络连接例子
2012-05-20 20:39 0来自java 学习室 -
java io 集合 笔试题
2012-05-18 18:44 0摩根笔试题: import java.io.Buffere ... -
f(n) = f(n-1) + f(n-2) 实现(递归与非递归运行时间比较)
2012-05-18 15:40 2549Fibonacci 算法递归实现与非递归实现时间比较: ... -
学习 JAVA IO
2012-05-17 00:29 0http://www.java3z.com/cwbwebhom ... -
java Runtime
2012-05-16 22:47 0Java垃圾回收时需要用到Runtime(这是一个单例模式), ... -
装饰模式
2012-05-16 12:19 0问题: 根据问题来学习,并学习如何理解讲解问题更透彻明白,及学 ... -
java io 设计
2012-05-15 22:46 0转载自: http://www.blogjav ... -
垃圾回收
2012-05-14 21:34 0参考垃圾回收电子书: ... -
java 基础
2012-05-03 23:50 738读 《研读设计模式》 简单工厂的优缺点: 帮助封装 简单工厂 ... -
Java 集合
2012-04-23 12:04 942今天在做如何从两个数组中取出相同的元素时碰到了一个问题,想知道 ... -
java 多态的情况
2012-04-15 23:34 1102参考 http://topic.csdn.net/u/2012 ...
相关推荐
在IT领域,逐字比较器是一种用于比较两个文本或数据流的工具,它按照字节或字符逐个进行比较,以确定它们是否完全相同或存在差异。这种技术广泛应用于文本编辑器、版本控制系统、文件比较软件以及编程语言的字符串...
本篇文章将深入探讨如何使用Java自定义比较器(Comparator)来实现中文字符串的正确排序。 首先,我们要了解`compareTo()`方法,这是Java中的一个基础方法,位于`java.lang.Comparable`接口中。`compareTo()`用于比较...
- 对集合中的数据进行排序,可以使用Java内置的`Collections.sort()`方法,或者自定义比较器`Comparator`来实现。例如,我们可以按照学号或成绩对学生进行升序或降序排列。 5. **IO流**: - 使用`java.io`包中的...
### C#与JAVA的比较 #### 相同之处 C#与JAVA这两种现代高级编程语言在许多方面都有着显著的相似之处。这些相似性主要源于两者的设计理念和技术背景,特别是它们都受到了C++语言的重要影响。 1. **平台独立性**:...
Java有内置的安全模型,可以防止内存泄漏和XSS、SQL注入等攻击,但配置复杂。PHP则依赖于开发者自身的安全意识,通过使用预处理语句、过滤用户输入等方式来保障安全。 总的来说,选择Java还是PHP,取决于项目的具体...
#### 三、比较器(Comparator) 在 Java 中,可以使用 `Comparator` 接口来定义对象的排序规则。`Comparator` 是一个函数式接口,可以通过实现它的 `compare` 方法来自定义比较逻辑。例如,如果我们想按照年龄升序...
在Java编程语言中,`Comparable`接口扮演着重要的角色,主要用作对象比较和排序的基础。这个接口定义了一个单一的方法`compareTo()`,使得实现了该接口的类的对象可以根据特定的规则进行比较。`Comparable`接口通常...
总的来说,这个"Java排序算法包"为开发者提供了一个强大的工具,不仅包含了多种经典的排序算法,还允许用户通过自定义比较器来满足个性化排序需求,从而在不同的场景下都能实现高效且准确的排序。
理解锁的概念,包括内置锁(synchronized)、显式锁(Lock),以及读写锁(ReentrantReadWriteLock),可以帮助我们编写更安全、高效的并发代码。另外,使用并发容器,如ConcurrentHashMap,比传统的同步容器(如...
JAVA语言文本编辑器是一款功能强大的文本处理工具,与Windows系统内置的文本编辑功能相媲美。在编程领域,一个良好的文本编辑器对于开发者来说至关重要,因为它可以极大地提高编写、调试和管理代码的效率。JAVA语言...
3. **KDiff3**:跨平台的文件和目录比较器,可以处理三向合并,适用于版本控制系统的冲突解决。 4. **JDiff**:专门针对Java源代码的比较工具,它可以生成人类可读的HTML格式的差异报告。 5. **IntelliJ IDEA / ...
### C#与Java比较 #### 引言 随着软件工程的发展,不同的编程语言因其独特的特性和优势被广泛应用于各类项目中。C# 和 Java 作为两种面向对象的编程语言,都具备了现代化语言的特性,如动态调度、垃圾回收机制等。...
CollectionsUtil工具类可能是对Java内置的`java.util.Collections`类的扩展,提供了更高级或定制化的集合操作。这可能包括但不限于:对集合进行排序、去重、合并、分割、查找、过滤等。例如,`CollectionsUtil.sort...
在Java编程领域,开发一个下载器是常见的任务,特别是对于处理大文件或网络资源时。本文将深入探讨如何实现一个简单的Java下载器,并且重点讲解如何实现下载的实时进度显示和速度计算。以下是对这个主题的详细阐述:...
TreeMap则基于红黑树,保证了元素的排序性,可以按照自然顺序或自定义比较器顺序排序。 3. **`java.util.Date`与`java.time`包**:Date是早期的日期/时间API,而Java 8引入的`java.time`包提供了更现代、更易用的...
而比较器排序则是通过`Comparator`接口实现,允许我们灵活地定义排序规则,尤其适合对象没有内置排序逻辑或需要多种排序标准的场景。两者都是`Arrays.sort()`和`Collections.sort()`等排序方法的重要组成部分,帮助...
Comparator是一个比较器接口,它提供了一种在类本身不支持排序的情况下控制对象次序的方式。通过实现Comparator接口,你可以创建一个独立于原始类的比较逻辑,这使得排序更灵活。Comparator接口包含两个方法:`...
13. **线程**:Java内置了对多线程的支持,可以创建Thread对象或实现Runnable接口来并发执行任务。 14. **网络编程**:Java提供了Socket和ServerSocket类,支持TCP/IP通信,可以用来构建客户端-服务器应用程序。 ...
`Comparator.reverseOrder()`用于创建一个逆序的比较器,而`Collections.reverseOrder()`通常用于对列表进行反向排序。两者可以结合使用以实现反向排序,例如: ```java Collections.sort(list, Comparator.reverse...