小白学Java笔记:Set集合

Set集合存储特点:无序,不可重复,无序指存储元素的顺序与添加元素的顺序可能不一致,不能存储重复的数据

//1) 创建Set集合存储String字符串, 通过泛型指定元素的类型为String, Set接口引用赋值实现类对象
Set<String> set = new HashSet<>();
//2) add()添加元素
//3) 直接打印, 存储顺序与添加顺序可能不一样, 不允许存储重复数据
//4) contains()判断包含、size()集合中元素个数
//5) foreach遍历
//6) remove(o)删除第一个匹配的元素
//7) itco迭代删除
//存储不重复的整数选择Set集合
while ( set.size() < 10 ){
    set.add( random.nextInt(100));
}

HashSet集合实现了Set接口,重写Set接口中所有抽象方法
HashSet底层数据结构是HashMap

//HashSet集合存储元素的位置由元素的哈希码决定
//hashSet存储对象时,元素的位置由元素的hashCode决定,查找元素也是根据计算的哈希码查找对应的位置,改变对象属性值,对象的哈希码改变,但是在hashSet集合中存储的位置没有改变,根据改变后的哈希码得到的位置不是之前存储的位置,因此返回false

TreeSet集合底层是TreeMap
TreeSet可以对集合中的元素进行排序,要求集合中元素可以比较大小
1.在TreeSet构造方法中指定Comparator比较器
2.如果TreeSet构造方法没有指定Comparator比较器,要求集合中的元素的类要实现Comparable接口

public class Student implements Comparable<Student>{
@Override
    public int compareTo(Student o) {
    	return this.name.compareTo(o.name);//返回整数则根据姓名升序排序
    }
}

TreeSet只根据Comparator返回值是否为0判断元素是否相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值