黑马程序员——java——TreeSet集合中储存学生对象,按照其年龄进行排序

TreeSet集合中储存学生对象,按照其年龄进行排序

import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.TreeSet;
public class SortListDemos
{
	public static void main(String[] args)
	{
		//
		//linkhashsetdemos();
    	//treesetdemos();
		treesetStudentdemos();
	}
	private static void treesetStudentdemos() {
		// 储存学生对象,依据其年龄排序,如果年龄下同,再比较其姓名
		TreeSet ts = new TreeSet();
		ts.add(new MinStudent("ccc",22));
		ts.add(new MinStudent("ddd",22));
		ts.add(new MinStudent("aaa",21));
		ts.add(new MinStudent("dad",23));
		ts.add(new MinStudent("fff",25));
		ts.add(new MinStudent("sss",22));
		ts.add(new MinStudent("jjj",20));
		Iterator it = ts.iterator();
		while(it.hasNext())
		{
			MinStudent ms = (MinStudent)it.next();
			System.out.println(ms.toString());
		}
	}
	private static void treesetdemos() {
		// TODO Auto-generated method stub
		TreeSet ts = new TreeSet();
		ts.add("abd");
		ts.add("kkk");
		ts.add("hhg");
		ts.add("eee");
		ts.add("abd");
		System.out.println("TreeSet :"+ts);
	}
	private static void linkhashsetdemos() {
		// TODO Auto-generated method stub
		HashSet lhs = new LinkedHashSet();
		//添加元素
		lhs.add("abd");
		lhs.add("kkk");
		lhs.add("hhg");
		lhs.add("eee");
		lhs.add("abd");
		System.out.println("HashSet:"+lhs);

	}

}
class MinStudent implements Comparable
{

	public int getName;
	private String name ;
	private int age;
	MinStudent(String name ,int age)
	{
		this.name =  name ;
		this.age=age;
	}
	public int getAge()
	{
		return age;
	}
	public String getName()
	{
		return name;
	}
	public String toString()
	{
		return "name:"+name +" --- age"+age;

	}

	@Override
	public int compareTo(Object o) {
		//
		MinStudent s =(MinStudent) o;
		//先按照年龄排序
		int i=this.getAge()-s.getAge();
		if(i ==0)
			return this.getName().compareTo(s.getName());
		return i;
	}

	}

运行方法:treesetStudentdemos();

运行方法:linkhashsetdemos();

treesetdemos();

TreeSet对元素进行排序的方式一: 
  让元素自身具备比较功能,元素就需要实现Comparable接口,覆盖compareTo方法。

如果不要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序。怎么办?

可以使用TreeSet集合第二种排序方式:

让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法。

将该类对象作为参数传递给TreeSet集合的构造函数。

时间: 2024-12-23 21:04:54

黑马程序员——java——TreeSet集合中储存学生对象,按照其年龄进行排序的相关文章

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

黑马程序员-Java基础-集合框架-TreeSet、二叉树、泛型

第一讲 TreeSet 1.  概述 TreeSet可以对Set集合中的元素进行排序,按照自然顺序排. 2.  演示代码 输出结果: 总结:TreeSet会对元素进行自然排序,大写排在小写前面. 第二讲  TreeSet存储自定义对象 1. 概述: 将自定义对象存储到TreeSet集合中. 2. 思路: 自定义学生类,并将学生对象存储到TreeSet中,在存储过程中按照年龄排序. 3. 练习:往TreeSet集合中存储自定义对象(学生),并按照学生年龄进行排序 小结: 自定义对象需要重写Comp

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员------java基础----集合

  ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------  集合框架 为什么会出现这么多容器? 因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构. 一.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存

黑马程序员---java基础---集合框架工具类:Collections和Arrays

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------        Collections 一.概述 Collections是对集合框架的一个工具类.它里边的方法都是静态的,不需要创建对象.并未封装特有数据. 在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二

黑马程序员-java-高新技术中《九》

                   --Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- 一:注解 1.注解(Annotation) 注解相当一个类或接口,每一个注解都是一个实例对象    注解的使用形式:@interface即@注解类名 定义注解类:     @interface A     {-} 使用了"注解类"的类: @A      class B{} 对"使用了注解类的类"进行反射操作: class C {       B

黑马程序员——Java基础---集合(一)---Collection、set、list

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------        集合框架 java中有许多的集合,也称为容器,下图便是集合框架的构成及分类. 一.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.

黑马程序员——java基础---集合框架

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.集合框架 概念:集合框架是Java中为了方便对集合进行存储.操作而形成的体系.集合是针对对象最常见的一种存储形式. 数组和集合类同是容器,区别在哪里?     相同点:               集合和数组都是容器,都可一存储对象(对象引用).     不同点:               数组长度固定,集合长度可变.               数组可以存储基本数据类型,集合却只能存储

黑马程序员-java基础-集合Set

-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! Set      Set中存放的元素无序,不可重复.取出方式只能说迭代器. Set体系   ——| Set 子接口,特点在于元素无序,元素不可重复         ——| HashSet:底层数据结构是哈希表,是线程不安全的,不同步. ——| TreeSet:可以对Set集合中的元素进行排序(红黑树) HashSet保证元素唯一性原理 保证元素唯一性主要是通过元素hash值,当hash值不同时认为是不同元素,当