天天看點

TreeSet集合添加自定義類的自然排序執行個體

  如果自定義的類想要添加到TreeSet集合中就必須 實作 Comparable 或者 Comparator,如果實作Comparable 就是自然排序,Comparator  就是 定制排序

  自然排序的步驟

1  定義bean類 實作Comparable接口并且重寫 compareTo方法

2  測試類進行測試。

public class Test {
	public static void main(String[] args) {
	 long l = System.currentTimeMillis();
     TreeSet<Mark> set = new TreeSet<Mark>();
     set.add(new Mark("張三", 11, 88));
     set.add(new Mark("李四", 11, 98));
     set.add(new Mark("王五", 11, 8));
     long l2 = System.currentTimeMillis();
     System.out.println(set);
     System.out.println("運作時間為"+(l2-l));
	}
}

class Mark implements Comparable<Mark> {
	String name;
	int age;
	int count;

	public Mark(String name, int age, int count) {
		super();
		this.name = name;
		this.age = age;
		this.count = count;
	}

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}

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

	public int getCount() {
		return count;
	}

	public void setCount(int count) {
		this.count = count;
	}

	@Override
	public String toString() {
		return "Mark [age=" + age + ", count=" + count + ", name=" + name + "]";
	}

	@Override
	public int compareTo(Mark o) {
		if (this.count > o.count) {
			return -1;
		} else if (this.count < o.count) {
			return 1;
		} else {
			if (this.age > o.age) {
				return 1;
			} else if (this.age < age) {
				return -1;
			} else {
				CollationKey key = Collator.getInstance().getCollationKey(
						this.name);
				CollationKey key1 = Collator.getInstance().getCollationKey(
						o.name);
				return key.compareTo(key1);
			}
		}
	}
}