Java的Set集合

八十七、Set集合
              不能存放重复的数据,存放的数据为无序(有自己的存放顺序)的;
              HashSet/TreeSet 都不能存放重复的数据;
              HashSet:存放null值,无序的,不能存放相同的值;
              TreeSet:不可以存放null值,默认升序的,不能存放相同的值;
              2种遍历方式
              不能使用for循环,因为没有索引,并且是无序的。
              Set集合判断数据是否重复:
              hashcode()、equals(),都是Object的方法;
              先判断hashcode()方法,再调用equals方法,两种方法都可以重写;
              hashcode重写时尽量满足:每一个对象都有唯一的hashcode值,这样就可以提高程序效率(可以拥有相同的hashcode)。



八十八、Set–接口:无序的,不可重复的 ,2种遍历方式
       HashSet–类:无序的,存入重复数据会被覆盖,并返回false,可以存放null值
       TreeSet–类:按照数据的自然顺序(升序)存放,数据类型需要兼容(也可理解为相同的数据类型),不能存放null值
              数字:从小到大顺序
              英文:按照字典顺序
              类:需要实现comparable接口或者自定义比较器comparator

       Collection:集合的接口,List,Set
       Collections :类,封装了很多对于集合数据操作的静态方法
       Collections.sort(list, c);//给List集合排序的



八十九、TreeSet
       TreeSet存放的数据默认按照升序排序
       存放的数据必须时类型兼容的,不能存放null值

       代码实现

			Comparator c=new Comparator() {
				@Override
				public int compare(Object o1, Object o2) {
					Student s1=(Student)o1;
					Student s2=(Student)o2;
					return s2.getName().compareTo(s1.getName());
				}
			};
			TreeSet t1=new TreeSet(c);
			t1.add(new Student("sa",15));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值