java TreeSet的排序之自然排序

摘要:
TreeSet将调用元素的compareTo方法来比较元素之间的大小关系,然后按升序排列集合中的元素。此时,需要对元素进行排序的类必须实现Compareble接口并重写其intcompareTo方法;此方法用于比较对象。如果obj1和compareTo返回0,则表示这两个对象相等。如果返回正整数,则表示obj1大于obj2。如果返回负整数,则表明obj1小于obj2;对于TreeSet集合,判断两个对象相等的标准是:compareTo()方法在比较时返回0;包装7月7日;//TreeSet可以自动排序!

TreeSet会调用元素的compareTo(Object o)方法来比较元素之间的大小关系,然后将集合里的元素按升序排列.此时需要排序元素的类必须实现Compareble接口,并覆写其int compareTo(Object o)方法;

该方法用于比较对象,若:obj1,compareTo(obj2),返回0,表示两个对象相等,若返回一个正整数,表示obj1大于obj2,若返回一个负整数,表示obj1小于obj2;

对于TreeSet集合而言,判断两个对象相等的标准是:

compareTo()方法比较返回 0;

package july7;

//TreeSet可以自动进行排序!最简单的情况

import java.util.Set;

import java.util.TreeSet;

public class Demo13 {

    public static void main(String[] args) {

       

        Set<Integer> s = new TreeSet<Integer>();

        s.add(1);

        s.add(192);

        s.add(123);

       

        s.add(56);

        s.add(13);

        s.add(96);

        System.out.println(s);//[1, 13, 56, 96, 123, 192]

    }

}

稍复杂点的

package july7;

//TreeSet的自然排序,升序

import java.util.Set;

import java.util.TreeSet;

class Student implementsComparable{//必须实现接口

    private Integer age;

    public Student(Integer age) {

        super();

        this.age = age;

    }

    @Override

    publicint compareTo(Object o) {//比较的规则,运用泛型可以消除强转!

        if(o instanceof Student){

            Student s = (Student)o;

            returnthis.age.compareTo(s.age);

        }

        return 0;

    }

    @Override

    public String toString() {

        return age+"" ;

    }

}

publicclass Demo14 {

    publicstaticvoid main(String[] args) {

       

        Set<Student> s = new TreeSet();

        s.add(new Student(140));

        s.add(new Student(15));

        s.add(new Student(11));

        s.add(new Student(63));

        s.add(new Student(96));

        System.out.println(s);//[11, 15, 63, 96, 140]

    }

}

免责声明:文章转载自《java TreeSet的排序之自然排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇J2EE的13个规范之(二) JDBC 及其使用Java常见异常下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

计算显卡对比

科学计算显卡的几个主要性能指标:1.计算能力:每秒FLOPS浮点运算,TFLOPS代表每秒万亿次浮点运算;2.计算性能:3.视频内存大小:视频内存大小还决定了可以用于实验的样本数量和模型的复杂性。...

lstm与bilstm

背景学习和整理lstm和bilstm的理论知识。对于有序数据,bilstm具有数据信息的长、短存储功能。bilstm:它是前lstm和后lstm的组合。为什么需要lstm?它可以更好地捕捉远距离的依赖性。通过培训,你可以了解哪些信息需要记住,哪些信息需要忘记;我不认为他喜欢“否定”,即句子的情感分析是贬义的。“lstm建模有一个问题,它不能从后面到前面对信息...

凤凰系统(Phoenix OS)PC版安装,电脑上体验功能丰富的安卓系统

Tid=9074&fid=12安装前准备下载最新的PhoenixOSIO安装映像,并将其刻录到USB闪存驱动器;如果使用Windows操作系统,建议使用UltraISO刻录。下载地址:http://www.phoenixos.com/download_x86开始安装。1.重新启动机器,从启动选项中选择USB闪存磁盘启动,然后选择“Installati...

10 TCP限流技术

TCP流限制的原因是接收方可以完全接受消息,以确保数据安全而不会丢失。首先,窗口机制引入了发送方和接收方都有一个窗口。当发送方发送数据时,将发送落入窗口中的数据。当接收器接收到数据时,落入接收器窗口的数据将被接受。可以看出,流量会受到窗口大小II的限制。滑动窗口技术1TCP滑动窗口技术通过动态改变窗口大小来调整两台主机之间的数据传输。...

浅析前端常见文件下载的9种场景:Blob基础知识/组成/Blob URL、a标签下载、showSaveFilePicker API下载(兼容性差)、FileSaver.js库下载、Zip下载(JSZip库)、附件形式下载(设置Content-Disposition)、base64格式下载(需转为blob)、分块传输下载、HTTP范围请求下载、大文件分块并行下载

它主要涉及九种文件下载场景。在浏览器端文件下载场景中,JavaScript中的blob类型对象表示一个不可变的原始数据类文件对象。在JavaScript中,您可以通过blob构造函数创建blob对象,blob构造函数表示要放入blob的数组内容的MIME类型。行终止符将更改为适合主机操作系统文件系统的新行字符,允许Blob和file对象用作图像的URL源、下...

Java 读取ANSI文件中文乱码问题解决方式[转]

Filefile=newFile(路径);InputStreamin=newjava.io.FileInputStream(文件);BufferedReader读取器=新的BufferedReader(读取);FileInputStreamin=newFileInputStream(文件);byte[]b=新字节[3];内容如下(b);...