Java HashSet 比较器

package TreeSet;

import java.util.Comparator;

import p.bean.Person;
/*
 * 创建了一个根据Person类的name进行排序的比较器
 * 
 */

public class CompartorByName implements Comparator {

	@Override
	public int compare(Object o1, Object o2) {
		Person p1=(Person) o1;
		Person p2=(Person) o2;
		
		int temp=p1.getName().compareTo(p2.getName());
		// return  1 ; 怎么存怎么取 有序
		
		
		
		
		return temp==0?p1.getAge()-p2.getAge():temp; 
	}

}


package TreeSet;

import java.util.Iterator;
import java.util.TreeSet;

import p.bean.Person;
import sun.reflect.generics.tree.Tree;

public class TreeSetDemo {

	public static void main(String[] args) {
		
		//demo1();
		TreeSet ts=new TreeSet(new CompartorByName());//比较器
		/*
		 * 以Person对象的年龄进行从小到大的排序。
		  * 
		 */
		
		ts.add(new Person("zhangsan",28));
		ts.add(new Person("lisi",23));
		ts.add(new Person("zhouqi",21));
		ts.add(new Person("wangwu",21));
		ts.add(new Person("zhaoliu",24));
		
		
		Iterator it=ts.iterator();
		
		while(it.hasNext()) {
			Person p=(Person) it.next();
			System.out.println(p.getName()+p.getAge());
			
		}
	}

	public static void demo1() {
		TreeSet ts=new TreeSet();
		
		ts.add("abc");
		ts.add("aa");
		ts.add("nba");
		ts.add("cba");
		
		Iterator it=ts.iterator();
		
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}

}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值