package set;
import java.util.Set ;
import java.util.TreeSet ;
class Person implements Comparable<Person>{
private String name ;
private int age ;
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public String toString(){
return "姓名:" + this.name + ";年龄:" + this.age ;
}
public int compareTo(Person per){
if(this.age>per.age){
return 1 ;
}else if(this.age<per.age){
return -1 ;
}else{
return this.name.compareTo(per.name) ; // 调用String中的compareTo()方法
}
}
};
public class TreeSetDemo04{
public static void main(String args[]){
Set<Person> allSet = new TreeSet<Person>() ;
allSet.add(new Person("张三",30)) ;
allSet.add(new Person("李四",31)) ;
allSet.add(new Person("王五",32)) ;
allSet.add(new Person("王五",32)) ;
allSet.add(new Person("王五",32)) ;
allSet.add(new Person("赵六",33)) ;
allSet.add(new Person("孙七",33)) ;
System.out.println(allSet) ;
}
};
分享到:
相关推荐
这样,当我们创建一个`TreeSet<Student>`时,`TreeSet`会根据`compareTo`方法自动对学生对象进行升序排序(默认是最小到最大)。 接下来,我们可以创建一个`TreeSet<Student>`实例,添加学生对象,然后遍历`TreeSet...
例如,TreeSet 可以使用自然排序方式创建一个新的 TreeMap,也可以使用定制排序方式创建一个新的 TreeMap。 TreeSet 的方法主要是调用 TreeMap 的方法来提供实现。例如,TreeSet 的 addAll 方法就是调用 TreeMap 的...
在Java编程语言中,对象排序是一项关键操作,特别是在处理集合数据结构时。本文将深入探讨如何对ArrayList、HashSet、TreeSet以及数组中的对象进行排序。理解这些排序机制对于编写高效且可维护的代码至关重要。 ...
通过以上两种方法,我们可以在`TreeSet`中添加自定义对象,并按照特定规则进行排序。选择哪种方法取决于实际需求:如果排序规则简单且固定,那么实现`Comparable`接口即可;若排序规则复杂或需要动态变化,则应考虑...
在使用 TreeSet 时,我们可以通过实现 Comparable 接口或提供Comparator 对象来指定排序规则。下面,我们将详细介绍 TreeSet 中的两种排序方式:自然排序和定制排序。 自然排序 自然排序是指通过实现 Comparable ...
这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于自定义对象排序的例子。下面将详细解释相关知识点。 1. **Comparable接口**: Java中的`...
这个方法源自`Comparable`接口,任何希望在TreeSet中进行排序的类都应当实现这个接口。在`compareTo()`方法中,需要定义比较规则,通常比较的是对象的属性。例如,对于数值类型,可以按照数值大小比较;对于字符串,...
当我们处理集合数据时,有时需要按照特定的规则对元素进行排序,例如按照对象的属性值或字符串的自然顺序。本主题将深入探讨如何使用SortedSet接口来实现Java对象的中文排序,并通过源码分析理解其工作原理。 首先...
2. **自定义比较器**:如果我们需要自定义元素的排序规则,可以通过传递一个实现了`Comparator`接口的对象给`TreeSet`的构造函数来实现。`compare()`方法在这个比较器中定义了元素的比较逻辑。 3. **基本操作**:`...
发布于2012-5-8TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。TreeSet会调用集合元素的compareTo(Objectobj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然...
在Java编程语言中,对象排序是一项重要的操作,特别是在处理集合数据结构时。本文将深入探讨如何在Java中对对象进行排序,以及相关的知识点。 首先,Java中的对象排序主要涉及到两个核心概念:Comparable接口和...
由于`TreeSet`自动排序,可以根据书名、作者或出版日期等进行排序。 - **借书卡办理**:创建一个`Card`类表示借书卡,包含持卡人信息。每个持卡人可以有一个`TreeSet<Book>`记录他们的借阅历史。 3. **借书,还书*...
在这个例子中,`Person`类实现了`Comparable`接口,`compareTo`方法比较两个`Person`对象的年龄,`TreeSet`在添加元素时会自动调用这个方法进行排序。 2. **使用`Comparator`**:如果不想修改类的源代码,可以创建...
标签"(TreeSet) s."表明我们关注的是与TreeSet对象`s`相关的操作。 关于TreeSet和`subSet()`方法的知识点包括: 1. **TreeSet的特性**:TreeSet自动排序元素,不允许插入null值,并且保证了集合的唯一性。元素按照...
对于`TreeSet`,由于其只能存储单个对象,若要按值排序,我们需要创建一个包含键值对的自定义类,然后重写`compareTo()`方法,使其根据值进行比较。例如: ```java class ValueWrapper implements Comparable...
在实际开发中,`TreeMap` 适合于需要按照特定键值进行排序的情况,而 `TreeSet` 则适用于需要对一组对象按照特定规则进行排序的场景。自定义比较器是实现排序灵活性的关键,可以根据业务需求定制排序逻辑。 总结,`...
在上述代码中,使用了 List 接口来存储 ServerInfo 对象列表,并使用了 Collections.sort() 方法来对列表进行排序。List 接口提供了对元素的添加、删除和遍历等操作,可以满足基本的数据存储需求。 在实际应用中,...
对于`HashMap`,尽管`Student`类的`equals()`和`hashCode()`方法未正确实现,但是由于`HashMap`使用的是对象引用作为键,所以每个调用`put()`方法都会覆盖之前的值,最终`map`中只会有最后一个键值对。 综上所述,...
本篇总结主要围绕Java集合的排序方法进行详细阐述,共计13页,涵盖了多种排序策略和技术。下面我们将深入探讨这些关键知识点。 1. 集合接口与实现 在Java中,集合主要分为两种类型:List和Set。List接口(如...
哈希表依赖于对象的 `hashCode()` 方法来确定元素的存储位置,而 `equals()` 方法用于判断两个对象是否相等。在添加元素时,如果两个对象的 `hashCode()` 返回相同的值,那么它们会被放在同一个桶(bucket)中,此时...