treesettest.java

来自「java培训专题」· Java 代码 · 共 59 行

JAVA
59
字号
package util;
import java.util.*;
/*
 * 如果一个类的对象要作为元素传到TreeSet中,那么这个类必须实现了Comparable接口.
 */
public class TreeSetTest {

	public static void main(String[] args) {
		/*TreeSet ts=new TreeSet();
		ts.add("winsum");
		ts.add("weixin");
		ts.add("mybole");
		Iterator it=ts.iterator();//TreeSet类没有提供get()方法来获得元素,因此要使用迭代器.
		while(it.hasNext()){
			System.out.println(it.next());
		}*/
		TreeSet trs=new TreeSet(new Stu2.Stu2Comparator());
		trs.add(new Stu2(2,"suxin"));
		trs.add(new Stu2(4,"lishi"));
		trs.add(new Stu2(3,"boy"));
		trs.add(new Stu2(1,"zhangsan"));
		trs.add(new Stu2(3,"aoy"));
		Iterator it=trs.iterator();//TreeSet类没有提供get()方法来获得元素,因此要使用迭代器.
		while(it.hasNext()){
			System.out.println(it.next());
		}
	}
}
class Stu2 implements Comparable{
	int num;
	String name;
	public Stu2(int num, String name) {
		this.num = num;
		this.name = name;
	}
	static class Stu2Comparator implements Comparator{
		public  int compare(Object o1,Object o2){
			Stu2 s1=(Stu2)o1;
			Stu2 s2=(Stu2)o2;
			int result;
			result=s1.num>s2.num? 1:(s1.num==s2.num? 0:-1);
			if(result==0)
				result=s1.name.compareTo(s2.name);
			return result;
	    }
		public boolean equals(Object o1,Object o2){
			Stu2 s1=(Stu2)o1;
			Stu2 s2=(Stu2)o2;
			return s1.num==s2.num&&s1.name.equals(s2.name);
		}
	}
	public int compareTo(Object o){
		Stu2 s=(Stu2)o;
		return num>s.num? 1:(num==s.num? 0:-1);
	}
	public String toString(){
		return num+":"+name;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?