`

TreeSet初步认识

阅读更多

TreeSet:二叉树数据结构,线程不安全,可以对Set集合中的元素进行排序,并且使用compareTo或者compare方法中的来保证元素的唯一性,最终还是用比较(equalps()方法)元素属性。
记住,排序时,当主要条件相同时,一定判断一下次要条件。
比较元素的顺序方法:
1,元素自身具备比较性,实现Comparable接口,覆盖compareTo方法。
2,对元素集合自身具备比较的属性做一个比较器,该比较器将实现了Comparator接口覆盖compare方法的d对象作为参数传递给TreeSet集合的构造函数。

方法一:

import java.io.Serializable;
import java.util.Comparator;

public class Student implements Comparable<Student>{
	
	private static final long serialVersionUID = 1L;
	private String id;
	private String name;
	private int age;
 //.....省略了
 
	@Override
	public int compareTo(Student o) {
		int i = age > o.getAge() ? 1 : (age == o.getAge() ? 0 : -1);
		if (i != 0){
			return i;
		}
//		return i ;
		int j = name.compareTo(o.getName());
		if(j!=0){
			return j;
		}
		return id.compareTo(o.getId());
	}

 
}

方法二:

public class ComparableDemo implements Comparator<Student> {
 
	public int compare(Student o1, Student o2) {
		// 省略
		return 0;
	}
}

 

 

 

 

分享到:
评论

相关推荐

    实验二、Java集合与XML实验.doc

    在Java编程中,集合框架是处理对象集合的重要工具,提供了多种数据结构和操作方式。本实验主要关注两个方面...同时,也对XML编程有了初步的认识。在实际编程中,根据需求选择合适的集合类型和XML处理方法是非常关键的。

    java 实验报告

    这一实验不仅帮助初学者熟悉了Java集合框架的使用,也对Java处理复杂数据结构的能力有了初步的体验。 接下来是打印九宫格的实验,通过二维数组和循环控制,学习者可以实践如何控制变量来填充和打印矩阵。这里不但...

    Thinking in Java(pdf+chm).zip

    1. **Java基础**:Java语言的基础包括数据类型(如整型、浮点型、字符型和布尔型)、变量、运算符、流程控制(如if语句、switch语句、for循环、while循环等)、方法定义和调用,以及类和对象的初步认识。 2. **面向...

    Day02实习日记1

    在Java编程中,集合是存储和管理对象的重要工具。在暑期Java实训的第二天,学员们...通过这一天的学习,学员们不仅掌握了集合的基本操作,还对抽象类、接口和IO流有了初步的认识,为后续的编程实践打下了坚实的基础。

    十五天的时间进行JAVA学习的入门

    十五天的学习时间虽短,但通过有计划地学习和实践,你将能够建立起对Java的初步认识,为后续深入学习打下坚实基础。记住,理论知识与实际编程相结合,不断练习和解决问题是提升技能的关键。祝你在Java学习的道路上越...

    Java入门经典

    6. **集合框架**:掌握ArrayList, LinkedList, Set(HashSet, TreeSet)和Map(HashMap, TreeMap)等容器的使用,理解迭代器(Iterator)和泛型的概念。 7. **输入输出流**:学习I/O流的基本操作,包括文件读写,...

    java初学者编程练习题+程序代码

    9. **线程**:初步理解线程的创建和同步,使用Thread类和Runnable接口,以及synchronized关键字。 10. **枚举与注解**:学习枚举类型及其用法,理解注解的作用和使用场景。 11. **泛型**:理解泛型的概念,掌握...

    java学习图解

    十分钟学习JAVA的描述可能意味着这份资料旨在通过简洁明了的方式,让学习者在较短的时间内对Java有初步的认识。下面将详细阐述Java编程语言的关键知识点。 1. **基础语法**: Java是一种面向对象的语言,它以类为...

    易保java面试题目

    - **TreeMap与TreeSet**:了解红黑树的特性,以及它们是如何保证排序的。 4. **异常处理** - **异常分类**:认识检查型异常和运行时异常的区别。 - **try-catch-finally**:理解异常处理的机制,如何合理地捕获...

    java程序设计案例教程

    - 初步了解Java虚拟机(JVM)的工作原理。 **工作任务:** - 安装JDK,包括设置环境变量,确保Java开发环境正常运行。 - 编写并运行第一个Java程序,理解其基本结构。 - 探索JVM和Java运行环境的工作机制。 **相关...

    Java基础教程.md.pdf

    ##### 1.1 认识Java - **诞生时间**:1995年5月23日,Java语言由Sun Microsystems公司推出。 - **创始人**:James Gosling,通常被称为“Java之父”。 ##### 1.2 Java的发展史 - **起源**:Java最初被设计用于消费...

Global site tag (gtag.js) - Google Analytics