使用TreeSet类去除对象中的重复元素后,打印输出。
1.当对象元素都是字符串元素时,
创建Person类:
编译运行结果如图:
1.当对象元素都是字符串元素时,
创建TreeSetDemo类,编译运行
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetDemo {
/**
* @param args
*/
public static void main(String[] args) {
TreeSet ts=new TreeSet();//创建TreeSet的ts对象
ts.add("abc");//向对象中添加字符串元素
ts.add("cba");
ts.add("bca");
ts.add("ada");
Iterator it=ts.iterator();//使用迭代器输出对象元素
while(it.hasNext()){
System.out.println(it.next());
}
}
}
打印结果:
2.当对象元素是自定义元素时,
创建TreeSetDemo:
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetDemo {
/**
* @param args
*/
public static void main(String[] args) {
TreeSet ts=new TreeSet();//创建TreeSet的ts对象
ts.add(new Person("jack", 15));//向对象中添加自定义元素
ts.add(new Person("tom", 14));
ts.add(new Person("david", 17));
ts.add(new Person("danny", 19));
ts.add(new Person("green", 15));
Iterator it=ts.iterator();//使用迭代器输出对象
while(it.hasNext()){
Person p=(Person)it.next();//将it进行强转成Person类对象
System.out.println(p.getName()+":"+p.getAge());//打印输出
}
}
}
创建Person类:
/*Person类实现Comparable接口。
*因为Person类中的元素时自定义的,要首先定义如何比较,使用comparTo()方法,并覆盖comparTo()方法,
*让Person自身具备可比性
*/
public class Person implements Comparable {
@Override
//重写compareTo方法,设置Person类对象比较方法
public int compareTo(Object o) {
// TODO Auto-generated method stub
Person p=(Person)o;//将o强转为Person类对象
int temp=p.age-this.age ;//年龄按从大到小排序,当this.age-p.age时,为从小到大排序
return temp==0?this.name.compareTo(p.name):temp;
}
private String name;
private int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
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;
}
}
编译运行结果如图:
当对象中有相同age的元素时再比较name是否相同,并按照TreeSet的自然排序方法,将元素打印输出。