JAva treesetは重複しないストレージ方式を実現する(クラスオブジェクトでCompareToをインスタンス化する)

1835 ワード

package com.fenuang.student;

import java.util.Comparator;

public class Student implements Comparable {

	int id;
	String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

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

	/**
	 * 
	 */
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param id
	 * @param name
	 */
	public Student(int id, String name) {
		super();
		this.id = id;
		this.name = name;

	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "id :" + this.id + "   :" + this.name;
	}

	@Override
	public int compareTo(Object obj) {
		// TODO Auto-generated method stu
		Student stu = (Student) obj;

		int num = new Integer(this.id).compareTo(new Integer(stu.id));
		return num == 0 ? this.name.compareTo(stu.name) : num;
	}

}

 

インスタンス化されたオブジェクトのクラスでcompareToメソッドを書き換える必要がある
package com.fenuang.test;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.TreeSet;

import com.fenuang.student.Student;

public class test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// ArrayList arraylist = new ArrayList<>();
		// HashSet arraylist = new HashSet<>();

		TreeSet arraylist = new TreeSet<>();
		// arraylist.add(new Student(120, "  "));
		// arraylist.add(new Student(120, "  "));
		// arraylist.add(new Student(120, "23"));
		arraylist.add(new Student(23, "ADAWE"));
		arraylist.add(new Student(23, "ADAWE"));
		arraylist.add(new Student(23, "ADAWE"));

		System.out.println(arraylist);
	}

}