package jihe_TreeSet;

//新建一个放在setTree的对象
//因为是放在 TreeSet 所以要实现接口Compare
public class pension implements Comparable<Object> {
private int id;//身份号
private int age;//年龄
private String name;//姓名

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

public int getId() {
return id;
}

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

public int getAge() {
return age;
}

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

public String getName() {
return name;
}

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

public pension(int id, int age, String string) {
super();
this.id = id;
this.age = age;
this.name = string;
}

@Override
public int compareTo(Object o) {
// TODO 自动生成的方法存根
pension p;

if(o instanceof pension)
{
p=(pension) o;
}
else {return -1;
}
int diff=this.id-p.id;
if(diff!=0)
{
return diff/Math.abs(diff);//一个数除他的绝对值本身,返回-1或者1

}
return 0;//两个一样的,不添加
}

}

接下来看看怎么使用TreeSet的方法

package jihe_TreeSet;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
//这里虽然set比list高效,但是,他是不安全的
public class TreeSet_main {

public static void main(String[] args) {
// TODO 自动生成的方法存根

pension p1 = new pension(01, 18, "张三");
pension p2 = new pension(02, 20, "李四");
pension p3 = new pension(03, 18, "王二");
pension p4 = new pension(01, 8, "张三");
Set<pension> set = new TreeSet<pension>();
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);// 这个就是没有进去,因为返回的是0,表示相同

// 但是set集合不允许放相同的,这个的相同根据copareTo()里面具体的值
// 来比较的,不一定是全部的元素
System.out.println(set.size());

System.out.println(set.toString());//这里的toString是pension对象的toString

//怎么取里面的元素呢?
//1.转换成list
//2.使用迭代器
//3.使用for each 或者while循环的拿出来(while在迭代器里面使用)
//list
List<pension> list=new ArrayList<pension>(set);
System.out.println(list.get(1));
//使用迭代器
Iterator< pension> it=set.iterator();
System.out.println("-----------------------------------------");

while (it.hasNext())
{
System.out.println(it.next());
}
//使用for each
System.out.println("-----------------------------------------");

for(pension p:set)
{
System.out.println(p);
}
System.out.println("-----------------------------------------");

}

}