Java语言中,Set接口有3种通用实现:HashSetTreeSet,LinkedHashSet。TreeSet是一种能够对内部元素进行排序的集合,它使用红黑树来存储内部元素,基于元素的值进行排序,它比HashSet要慢。

TreeSet要求内部元素实现Comparable接口,因为它是根据元素的compareTo来排序的。下面是一个demo:

package Colloections;

import java.util.LinkedList;
import java.util.TreeSet; public class TreeSetDemo { public static void main(String[] args) {
// TODO Auto-generated method stub TreeSet<Person> treeSet = new TreeSet<Person>();
treeSet.add(new Person("albert", 8));
treeSet.add(new Person("bob", 5));
treeSet.add(new Person("bob", 13)); for (Person person : treeSet) {
System.out.printf(person.toString());
}
}
} class Person implements Comparable<Person>{ public String name;
public int age; public Person(String n, int a){
name = n;
age = a;
} public String toString() {
return String.format("Name is %s, Age is %d%n", name, age);
} @Override
public int compareTo(Person o) {
// TODO Auto-generated method stub
int nameComp = this.name.compareTo(o.name);
return (nameComp != 0 ? nameComp : (this.age - o.age));
} }

程序输出为:

Name is albert, Age is 8
Name is bob, Age is 5
Name is bob, Age is 13

Java-TreeSet的用法-入门的更多相关文章

  1. Java程序员快速入门Go语言

    这篇文章帮助Java程序员快速入门Go语言. 转载至 开源中国社区. http://www.oschina.net 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将 ...

  2. JAVA的continue用法

    JAVA的continue用法: public class test{ public static void main(String [] args){  for(int i=0;i<=10;i ...

  3. Java垃圾回收机制 入门

    对于Java虚拟机的了解,我认为是一个Java程序员已经入门的重要标志,而JVM中的垃圾回收机制(Garbage Collection,简称GC)又是JVM中的重点,所以hans在这里用篇文章时间和大 ...

  4. Java Spring AOP用法

    Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...

  5. Java Spring IOC用法

    Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...

  6. 四种Java线程池用法解析

    本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 执行一个异步任务你还只是如下 ...

  7. JAVA中ArrayList用法

    JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时 ...

  8. this在java中的用法

    this在java中的用法 1.使用this关键字引用成员变量 作用:解决成员变量与参数或局部变量命名冲突的问题 public class Dog { String name; public Dog( ...

  9. java assert的用法简介【转】

    assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...

  10. Java工程师学习指南 入门篇

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

随机推荐

  1. POJ 3254 Corn Fields:网格密铺类 状压dp

    题目链接:http://poj.org/problem?id=3254 题意: 给你一片n*m的耕地,你可以在上面种玉米.但是其中有一些地方是荒芜的,不能种植.并且种植玉米的地方不能相邻.问你在这片地 ...

  2. /dev/null 2>&1解释

    /dev/null 2>&1 解释 crontab内容 :50 18 5-30 * * /script/myscript.sh 1> /dev/null 2>&1 其 ...

  3. 复习hiernate

     Configuration Configuration 类负责管理 Hibernate 的配置信息 包括如下内容:1,Hibernate运行的底层信息:数据库的URL.用户名.密码.JDBC驱动类, ...

  4. 实现多条件模糊查询SQL语句

    很多网友问到如何写模糊查询语句和多条件查询,这里我整理了一下,假设以姓名.性别.电话号...作为数据库中的字段名. 通常写一个简单的模糊查询的SQL语句格式可以如下例: sql="selec ...

  5. jenkins 多选框

    背景jenkins自带的参数化不支持多选框,不过有插件支持:Extended Choice Parameter Plug-In插件地址: https://plugins.jenkins.io/exte ...

  6. 微信原图泄露的只能是 Exif ,你的隐私不在这!!!

    版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章. 未经允许,不得转载. 序 最近很多公众号都推送了关 ...

  7. HTTP协议的8种请求类型介绍

    HTTP协议的8种请求类型介绍 转自:http://www.cnblogs.com/liangxiaofeng/p/5798607.html HTTP协议的8种请求类型介绍 HTTP协议中共定义了八种 ...

  8. MySQL之数据的备份与还原

    备份db_book:这里用到了cmd,以管理员方式运行,不然后面使用mysqldump会被拒绝访问!!! 1.启动cmd,输入命令,切换到MySQL的bin文件: 2.然后输入备份命令: 备份好的sq ...

  9. Centos7安装nginx并设置为HTTP代理服务器(正向代理)

    # wget https://nginx.org/download/nginx-1.9.9.tar.gz # .tar.gz # cd nginx- # ./configure --prefix=/u ...

  10. 大数据平台搭建-hadoop/hbase集群的搭建

    版本要求 java 版本:1.8.*(1.8.0_60) 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...