Java : Set 集合接口(集合排序说明)

TreeSet 排序分析

既然 TreeSet子类可以进行排序, 所以下面编写一个自己的类, 希望可以通过 TreeSet实现我们的排序操作.
Java : Set 集合接口(集合排序说明)_第1张图片

范例: 使用TreeSet排序

package com.nothing.dhl;

import java.util.Set;
import java.util.TreeSet;

class Person {
     
	private String name;
	private int age;

	public Person(String name, int age) {
     
		this.name = name;
		this.age = age;

	}

	public int getAge() {
     
		return age;
	}

	public String getName() {
     
		return name;
	}

	public void setName(String name) {
     
		this.name = name;
	}

	public void setAge(int age) {
     
		this.age = age;
	}

	@Override
	public String toString() {
     
		return "name =" + this.name + ",age =" + this.age;
	}
}

public class Test {
     
	public static void main(String[] args) {
     
		Set<Person> set = new TreeSet<Person>();
		set.add(new Person("张三", 12));
		set.add(new Person("张三", 12)); // 重复数据
		set.add(new Person("张四", 14));
		set.add(new Person("张三", 14)); // 年龄重复
		set.add(new Person("王五", 19));
		System.out.println(set);
	}
}

Java : Set 集合接口(集合排序说明)_第2张图片
所以, 此时要进行我们的排序, 实际上针对于对象数组的排序处理, 而如果要进行对象数组的排序处理, 在之前就已经明确说明了, 对象所在的类一定要实现 Comparable 接口, 覆写 compareTo() 方法, 只有通过此方法才能知道大小关系.

但是需要提醒的是, 如果现在使用了 Comapareble 接口进行大小关系匹配的时候, 你就需要当心给自己挖坑的. 因为所有的属性全部需要进行比较操作.
Java : Set 集合接口(集合排序说明)_第3张图片
Java : Set 集合接口(集合排序说明)_第4张图片
因为在实际的开发之中, TreeSet 的使用实在是过于麻烦了, 在项目开发里面 简单 java 类是根据数据库表中设计而来, 如果这张表的字段暴多, 你这个类得写死.

你可能感兴趣的:(日常小知识随笔,我的百宝箱,Java算法及JDK源码探究,java,数据结构)