JavaSE_day07_list集合&异常

今日内容
异常 【重点】
Collection&List 【重点】

异常 【重点】
异常概述
什么是异常
为什么要有异常类
异常的体系结构
Throwable
|-Error
|-Exception
|-编译时异常
|-运行时异常

    编译时异常和运行时异常如何区分
        1、编译时异常Exception下除了RuntimeException及其子类之外
           运行时异常指的是RuntimeException及其子类

        2、编译时异常在编译的时候如果没有进行处理,编译会报错(未雨绸缪型异常,提醒)
           运行是异常在编译的时候如果没有进行处理,编译不会报错(真正运行的时候触发了才会报出)

如何处理异常
    1、声明抛出处理(throws)
        在方法声明处进行抛出处理

        修饰符 返回值类型 方法名(参数列表) throws 异常类名{

        }

        如果通过这这种方式处理,异常会抛给方法的调用者(向上抛出)
        一般throws处理的都是编译时异常,一般不会处理运行时异常,因为意义不太大

        抛出编译时异常,只是处理了编译报错的问题,相关的告诉编译器你提醒我的问题我接收到了

    2、捕获异常(try...catch)
        格式一:
            try{

            }catch(异常类名 变量名){

            }


        格式二:
            try{

            }catch(异常类名 变量名){

            }finally {

            }

        格式三:
            try{

            }finally {

            }

        格式解析:
            1、try:检测/尝试,其中编写的是可能出现异常的代码
               catch:捕获(小括号)和处理(大括号)
                        如果出现异常就会执行catch进行异常匹配,如果匹配到了就会执行catch大括号中的代码
                        如果没有出现异常,或者出现的异常没有匹配上则不会执行执行catch大括号中的代码
               finally:最终,其中编写的是一定会执行的代码,比如资源释放等一些收尾公共
                        不管异常发生,finally中的代码一定会执行

            2、catch块可以出现多个,try和finally块不能出现多个


Throwable中的常见方法
    public String getMessage():获取异常出现的原因
    public String toString():获取异常类名和异常出现的原因
    public void printStackTrace():打印详细的信息(异常类名、异常出现的原因和异常出现的位置)

自定义异常类
    为什么要自定义异常?
        做到见名知义

    如何自定义异常?
        1、自定义一个类继承RuntimeException或者Exception
                如果要自定义运行时异常就继承RuntimeException
                如果要自定义编译时异常就继承Exception
        2、生成两个构造,一个空参构造,一个带字符串参数的构造(可以传递异常出现的原因)

    如何使用自定义异常?
        自定义好了之后,就和JDK提供的异常一样使用
        如果是编译时异常,编译时期必须处理
        如果是运行时异常,编译时期可以处理,也可以不处理,如果要处理使用try...catch

Collection&List 【重点】
集合和数组的区别
集合的特点:
1、集合是一个容器,可以存储多个数据,如果是使用泛型,就存储泛型规定的那种数据
如果没有泛型,就可以存储不同类型的数据
2、集合有些有索引有些没有索引
List分支的集合是有索引的,范围0~集合的长度-1
Set分支的集合没有索引,不能通过索引来操作元素
3、集合只能存储引用类型的数据,不能直接存储基本类型的数据
如果存储基本类型的数据,则会将基本类型转换为引用类型(自动装箱),然后存储
4、集合的长度可变

    数组的特点:
        1、是一个容器,一次可以存储多个“同一数据类型”的数据
​		2、数组有索引(编号)的,索引的范围在0到数组的长度-1
​		3、数组可以存储任意类型的数据(基本数据类型和引用数据类型)
​		4、数组长度是固定的

集合的体系结构
    集合不是某一个类组成,而是有很多的类组成的一个继承(实现)体系。
    不同的集合底层的数据结构不太一样,导致它们存储数据的特点不同,在特定的情况下应该去原则合适的集合。
    但是虽然这些容器有不同的特点,但是它们也有很多的共性,比如增(存)删(删出)改(修改)查(取),这些共性
    内容不断向上抽取,抽取到父类(父接口中),就形成了集合的体系结构

    单列集合
        Collection
            |-List  有索引
                |-ArrayList
                |-LinkedList
            |-Set   没有索引,不能存储重复元素,不能保证存取有序
                |-HashSet
                |-TreeSet

    双列集合
       Map
            |-HashMap
            |-TreeMap

    学习的时候从上往下学,使用的时候从下往上。
    因为最上层的接口定义了最多的共性内容,如果把最上层的接口中的方法学完,
    那么下面的实现类的这些方法都不用学习了,之后只要学习不同的实现类特有的方法即可。

Collection
    常用方法
        boolean add(E e)            添加元素
        boolean remove(Object o)    从集合中移除指定的元素
        boolean removeIf(Object o) 根据条件进行移除
        void clear() 清空集合中的元素
        boolean contains(Object o) 判断集合中是否存在指定的元素
        boolean isEmpty() 判断集合是否为空
        int size() 集合的长度,也就是集合中元素的个数

        遍历相关方法
            Iterator<E> iterator​():获取到迭代器对象


        * Collection集合没有任何一个和索引操作相关的方法

    面试题:
        以下方法属于Collection接口中定义的方法的是  D
            A:get(int index)
            B:remove(int index)
            C:set(int index,Object e)
            D:add(Object e)

迭代器(Iterator)
    对集合进行遍历的工具
    迭代器是单列集合遍历的通用工具

    Collection<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    list.add("e");

    // 遍历
    Iterator<String> it = list.iterator();
    while(it.hasNext()){
        String s = it.next();
        System.out.println(s);
    }

List集合
    特点:
        1、存取有序
        2、可以存储重复元素
        3、有索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值