分析 Treeset 子类排序操作|学习笔记

简介: 快速学习分析 Treeset 子类排序操作

开发者学堂课程【Java 高级编程分析 Treeset 子类排序操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/409


TreeSet排序说明


经过分析之后 TreeSet 子类之中保存的数据是允许排序的,但是这个类必须要实现Comparable 接口,只要实现了此接口才够确认出对象的大小关系。

提示:TreeSet 本质是利用 TreeMap 子类实现的集合数据的存储,而 TreeMap 就需要根据 Comparable 来确定大小好关系。

那么下面就使用一个自定义的类来实现排序的处理操作.

范例:实现自定义类排序

Package cn.mldn.demo;

import java.util.Set;

Import java.util.TreeSet;

Class Person implements Comparable <Peson>{ // 比较器

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 ;

}

@Override

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 );

}

}

}

pub1ic class JavaAPIDemo {

public static void main ( String [] args ) throws Exception{

Set < Person >al1= new TreeSet < Person >();/为 List 父接口进行实例化al1.add( new Person ("张三",19));

all . add ( new Person ("李四",19));//年齡相同,但是姓名不同

all . add ( new Person ("王五”,20));//数据重复

a11.add( new Person ("王五",20));//数据重复

a11.add( new Person ("小小强”,78));

all.forEach(System.out::println);

在使用自定义类对象进行比较处理的时候一定要将该类之中的所有属性都依次进行大小关系的匹配,否则如果某一个或某几个属性相同的时候它也会认为是重复数据,所以 TreeSet 是利用了 Comparable 接口来确认重复数据的。

由于 TreeSet 在操作过程之中需要将类中的所有属性进行比对,这样的实现难度太高了,那么在实际的开发之中应该首选 HashSet 子类进行存储。

相关文章
|
9月前
|
Java
探索Java集合的3种遍历方式
传统的集合遍历方式 在Java中,我们可以使用传统的循环和迭代器来遍历集合
149 2
|
5月前
|
算法 搜索推荐 Java
数据结构与算法__冒泡排序__Java外比较器和内比较器(排序专题)
数据结构与算法__冒泡排序__Java外比较器和内比较器(排序专题)
35 0
|
8月前
|
存储 Java 程序员
Java集合List介绍和去重方案
Java集合List介绍和去重方案
70 0
TreeSet的两种排序方式
示例: 示例公用类: public class MyDate { private int month; private int year; private int day; @Override public String toString() { return "MyDate{" + "month=" + month + ", year=" + year +
79 0
TreeSet的两种排序方式
|
存储 Java 索引
Java中TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例
TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例的简单示例
152 0
Java中TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例
Java集合相关学习——如何实现List集合的去重操作?
Java集合相关学习——如何实现List集合的去重操作?
Java集合相关学习——如何实现List集合的去重操作?
Java集合相关学习——元素排序两大接口Comparable和Comparator的应用及区别
Java集合相关学习——元素排序两大接口Comparable和Comparator的应用及区别
Java集合相关学习——元素排序两大接口Comparable和Comparator的应用及区别
|
存储 算法 Java
TreeSet类的排序问题
TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。1、自然排序    TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。
1633 0
|
Java 开发者
【第 18 个代码模型】List 集合接口(LinkedList 子类)|学习笔记
快速学习 【第 18 个代码模型】List 集合接口(LinkedList 子类)