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

TreeSet 排序分析

既然 TreeSet子类可以进行排序, 所以下面编写一个自己的类, 希望可以通过 TreeSet实现我们的排序操作.
在这里插入图片描述

范例: 使用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);
	}
}

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

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

猜你喜欢

转载自blog.csdn.net/Beyond_Nothing/article/details/112889667