java中Comparator有什么用,举例说明?
2021/7/12 9:35:53
本文主要是介绍java中Comparator有什么用,举例说明?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
3.6 Comparator的用法
马克-to-win:和Comparable的思路一样,只不过排序规则这次是在Comparator的继承类的compare方法中定义。
例:3.6.1
import java.util.*;
// A reverse comparator for strings.
class MyComp implements Comparator {
/* Comparator has two methods compare and equals, when your class implements
Comparator, there is no need to override equals, why? java.lang Class
Object implement equals method, so its sub-class MyComp does not need to
implement equals method, while java.lang Class Object does not implements
compare mathod. */
public int compare(Object a, Object b) {
String aStr, bStr;
aStr = (String) a;
bStr = (String) b;
/* compareTo(String anotherString)Compares two strings
* lexicographically. The comparison is based on the Unicode value of
* each character in the strings. The character sequence represented by
* this String object is compared lexicographically to the character
* sequence represented by the argument string.
* The result is a negative integer if this String object
* lexicographically precedes the argument string.
*/
/* the following two statements will have the opposite effect. */
// return bStr.compareTo(aStr);
return aStr.compareTo(bStr);
}
}
public class TestMark_to_win {
public static void main(String args[]) {
/* Constructs a new, empty set, sorted according to the specified
* comparator. All elements inserted into the set must be mutually
* comparable by the specified comparator: comparator.compare(e1, e2)
*/
TreeSet ts = new TreeSet(new MyComp());
// Add elements to the tree set
ts.add("C");
ts.add("A");
ts.add("B");
ts.add("E");
ts.add("F");
ts.add("D");
// Get an iterator
// Get an iterator
Iterator i = ts.iterator();
// Display elements
while (i.hasNext()) {
Object element = i.next();
System.out.print(element + " ");
}
System.out.println();
}
}
更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44639795/article/details/103087154
这篇关于java中Comparator有什么用,举例说明?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding
- 2024-04-14出海软件草根逆袭打法是什么?
- 2024-04-13鸿蒙原生应用再新丁!企查查 碧蓝航线 入局鸿蒙
- 2024-04-11RAG应用开发实战(01)-RAG应用框架和解析器
- 2024-04-10DevOps已死?2024年的DevOps将如何发展
- 2024-04-10码农必看:常见源代码混淆技术详解