集合类大家族、迭代器、迭代器并发控制异常、

在这里插入图片描述

1 Collection集合

在这里插入图片描述
在这里插入图片描述

迭代器
在这里插入图片描述
iterator常用操作
在这里插入图片描述
列表迭代器(可以在遍历的时候添加元素)
在这里插入图片描述

1.1 list

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.1.1Arraylist底层是数组,查询快增删慢

在这里插入图片描述
在这里插入图片描述

1.1.2Linkedlist 底层是链表,查询慢,增删快

普通和ArrayList方法一样
在这里插入图片描述

2.Set集合

在这里插入图片描述
object 有hashcode()函数,返回对象的哈希值
没重载时,每个对象的哈希函数是相同的,不同对象的哈希函数是不同的
在这里插入图片描述

2.1hashset集合(如果是自定义类,自定义类必须重写hashcode和equals方法)

在这里插入图片描述

2.1.1 hashset元素唯一性原理(如果是自定义类,自定义类必须重写hashcode和equals方法)

在这里插入图片描述
在这里插入图片描述

2.2LinkedHashSet集合特点(如果是自定义类,自定义类必须重写hashcode和equals方法)

在这里插入图片描述

2.3TreeSet

2.3.1自然排序Comparable的使用

在这里插入图片描述
按照年龄大小排序,如果年龄相同,按照姓名排序

main函数
TreeSet<Student> ts=new TreeSet<Student>();

        Student s1=new Student(18,"dilireba");
        Student s2=new Student(23,"maerzhaha");
        Student s3=new Student(21,"gulinazha");
        Student s4=new Student(18,"dilireba");

        ts.add(s1);
        ts.add(s2);
        ts.add(s3);
        ts.add(s4);
        for(Student s:ts)
            System.out.println(s);
student类CompareTo函数
public int compareTo(Student student) {
//        return 1;//正数时,元素升序
//        return -1;//负数时,元素降序
        /*int nu=this.age-student.age;
        return nu;     这样会按age升序排列,但name不一样的对象会被当成一个对象,不存储*/
        int nu=this.age-student.age;
        Boolean b;
        if(nu==0)
            return this.name.compareTo(student.name)>0?1:0;
        return nu;
    }

2.3.2比较器排序Comparator的使用

在这里插入图片描述

public static void main(String[] args) throws ScoreException {
        TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int num=s1.getAge()-s2.getAge();
                if(num==0)
                    return s1.getName().compareTo(s2.getName());
                return num;
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值