需求:现有一对象Person有2个属性name和age,把Person对象先按照name属性进行比较排序(字母),如name有相同的按照age的大小排序.
1.构造Person类
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.age = age;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.编写java比较器
public class Comparator implements java.util.Comparator {
private int compare(String a, String b) {
return a.compareTo(b);
}
private int compare(int a, int b) {
return (a > b ? (a < b ? 0 : 1) : -1);
}
public int compare(Object o1, Object o2) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
String name1 = p1.getName();
String name2 = p2.getName();
int age1 = p1.getAge();
int age2 = p2.getAge();
return (compare(name1, name2) == 0 ? compare(age1, age2) : compare(name1, name2));
}
}
3.测试代码
public static void main(String[] args) {
Person p1 = new Person("a", 4);
Person p2 = new Person("b", 2);
Person p3 = new Person("c", 1);
Person p4 = new Person("a", 1);
Person p5 = new Person("a", 6);
Person p6 = new Person("a", -1);
TreeMap tm = new TreeMap(new Comparator());
tm.put(p1, "");
tm.put(p2, "");
tm.put(p3, "");
tm.put(p4, "");
tm.put(p5, "");
tm.put(p6, "");
for (Iterator it = tm.keySet().iterator(); it.hasNext();) {
Person key = (Person) it.next();
System.out.println(key.getName()+" "+key.getAge());
}
}
分享到:
相关推荐
本文将通过实例详细讲解Java比较器的概念、使用方法以及其实现原理。 一、什么是Java比较器(Comparator) Java比较器是一个接口,位于`java.util`包下,其主要作用是提供一种方式来定义对象之间的比较规则。当...
Java比较器概述是Java编程中的一个重要概念,尤其在数据排序和集合操作中起着关键作用。这个基础教程可能涵盖了以下几个核心知识点: 1. **Comparable接口**:Java中的`Comparable`接口定义了一个`compareTo()`方法...
Java比较器实现方法项目案例 Java比较器是一种用于实现排序操作的方法,通过比较器可以对对象进行排序。Java中提供了两种比较器的实现方式:Comparable(内部比较器)和Comparator(外部比较器)。 第一种方式是...
详解 Java 比较器 Java 比较器是 Java 语言中的一种机制,用于比较两个对象的大小。 Java 中的对象正常情况下只能进行比较 == 或者 != 不能使用 > ,但是在实际的开发中,我们需要对多个对象进行排序,就是需要比较...
计算机后端-Java-Java核心基础-第22章 常用类 20. Java比较器概述.avi
计算机后端-Java-Java核心基础-第23章 枚举类与注解 03. 复习:Java比较器等.avi
本教程将深入探讨Java比较器的概念、用法以及如何创建自定义的比较器。 1. 概念理解: - `Comparator`接口位于`java.util`包下,它包含了一个方法:`int compare(T o1, T o2)`,用于比较两个对象的大小关系。 - ...
除了`Comparable`接口,Java还提供了一个`Comparator`接口,用于创建自定义比较器。`Comparator`可以用于任何对象的比较,而不仅仅限于实现了`Comparable`接口的对象。通过实现`Comparator`接口的`compare()`方法,...
理解并熟练掌握这两种比较器的用法,对于编写高效、灵活的Java代码至关重要。通过实现`Comparable`接口,可以确保类的实例具有清晰的自然顺序,而`Comparator`则提供了额外的排序灵活性,尤其适用于多维度比较或者...
"java文本比较器"是一个这样的工具,它可以帮助开发者高效地完成这项工作。这个压缩包文件“java文本比较器.rar”很可能包含了一个用于比较Java源代码文件的实用程序。 文本比较器的基本原理是通过算法来分析两个...
### Java对象比较器详解 在Java编程中,比较对象是一个非常常见的需求,尤其是在排序或查找等操作中。本文将深入探讨一个自定义的Java对象比较器,并解释其工作原理及其实现细节。 #### 1. 概述 给定的代码实现了...
2020-4-9 java 比较器 2020-4-10 java笔记 枚举类 2020-4-10 java 注解(Annotation) 2020-4-11 Java 集合 2020-4-15 java 泛型 2020-4-18 java IO流 2020-4-19 java 网络编程 2020-4-21 java反射 2020-4-22 java8 ...
在Java编程中,比较器(Comparator)是用来比较对象的关键工具,尤其在进行对象数组排序时。本文将深入探讨Java中三种常见的比较器实现方法:覆写`equals()`方法,实现`Comparable`接口以及继承`Comparator`接口。 ...
为了简化这个过程,Java提供了一种机制,即“比较器”(Comparator),它允许我们自定义对象的比较规则。本文将深入探讨Java中通用比较类的概念、实现方式以及它们在实际编程中的应用。 1. **比较器接口...
Java中的比较器主要涉及到两种接口:Comparable接口和Comparator接口,它们在处理对象排序时起着关键作用。 **Comparable接口** Comparable接口是Java.lang包下的一个接口,它只有一个方法:compareTo(T o)。当一个...
Java 比较器(Java Comparator)是一种接口,用于比较对象。比较器可以用于排序、过滤和搜索对象。 正则表达式 Java 正则表达式(Java Regular Expression)是一种字符串匹配模式,用于匹配和处理字符串。 反射 ...
在Java编程语言中,`DynamicComparator`是一种实现比较器(Comparator)的方式,它允许在运行时根据特定条件来比较对象。这种技术对于处理多种比较逻辑或者需要灵活改变比较规则的场景非常有用。本文将深入探讨Java...
知识点2:Java比较器(Comparator)的使用 在本例中,我们使用了一个自定义的比较器来对TreeMap的键进行排序。Comparator是一个函数式接口,用于比较两个对象的大小。在本例中,我们使用了String类型的compareTo...
自己用Java写的桌面小工具,可以用来做为“大家来找茬”之类小游戏时的辅助工具,详见我的博客
Java上的Interfaz'Comparator' Descripción Projecto que ejemplifica el uso de la interfazgenérica'Comparator',准许持证人tenjet objetos que la Implementen para poder pasar a ser'Comparadores'。 可以...