colección-java-5

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;//两个一样的,不添加
	}

}

A continuación, mire cómo usar 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("-----------------------------------------");

	}

}

Supongo que te gusta

Origin blog.csdn.net/huiguo_/article/details/108846881
Recomendado
Clasificación