A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海贼王和皮卡丘 初级黑马   /  2018-11-20 16:26  /  488 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

就业班Day02课堂小记

java.util.Collection<E>接口:
        // 成员方法(子类都会实现)
        boolean?add(E?e): 把给定的对象添加到当前集合中
        void?clear(): 清空集合中所有的元素
        boolean?remove(E?e): 把给定的对象在当前集合中删除
        boolean?contains(E?e): 判断当前集合中是否包含给定的对象
        boolean?isEmpty(): 判断当前集合是否为空(没有元素)
        int?size(): 返回集合中元素的个数
        Object[]?toArray(): 把集合中的元素,存储到数组中
        Iterator<E> iterator(): 获取集合的迭代器对象


java.util.Iterator<E>接口: 迭代器
        // 成员方法
        boolean hasNext(): 判断是否有下一个元素
        E next(): 获取下一个元素
        void remove(): 删除调用完next()指向的元素
       
java.util.Collections工具类
        // 静态方法
        static void shuffle(List<?> list): 随机打乱集合中元素的顺序
迭代器的并发修改异常:
        1.使用迭代器的过程中,修改了集合的长度(添加或删除元素)就会抛出并发修改异常
        2.并发,两件事同时发生(1.迭代,2.修改集合长度)
        解决并发异常的解决
增强for循环:
        底层使用的也是迭代器,使用for循环格式,简化了迭代器的书写
        Collection<E>接口extend Iterable<E>接口
泛型的使用:
        创建集合对象,不使用泛型
        好处:
                集合不使用泛型,默认的数据;类型就是Object类型,可以存储任意数据类型的数据
        弊端:
                不安全,会引发异常
        创建集合对象,使用泛型
        好处:
                1.避免了类型转换的麻烦,存储数据类型是什么类型,取出就是什么数据类型
                2.把运行期异常(代码运行之后会抛出异常,提升到了编译期(写代码的时候回报错))
        弊端:
                泛型是什么类型,只能存储什么类型数据
泛型类的定义与使用
        泛型是一个位置的数据类型,当我们不确定什么数据类型的使用,可以使用泛型
        泛型可以接收任意的数据类型
        创建对象时确定泛型的数据类型
        定义格式:
                修饰符 class  类名 <泛型的名字>{
       
        }
定义含有泛型的方法与使用
        定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间
        格式:
                修饰符 <泛型> 返回值类型 方法名 (参数列表){方法体}
        含有泛型的方法,在调用方法的时候就确定泛型的数据类型
        传递什么类型的参数,泛型就是什么类型
        静态方法也可以使用fan泛型
        注意:静态方法也可以用对象调用,用类名也可以调用
定义与使用含有泛型的接口
        修饰符  interface 接口名<代表泛型的量>{
       
        }
        实现类实现了接口以后有两种选择
        1.定义接口的实现类,实现接口,并直接指定接口的泛型
        2.接口使用什么泛型,实现类就使用什么泛型,类直接跟着接口走
        就相当于定义一个含有泛型的类,创建对象的时候确认泛型的数据类型
泛型通配符
        ?:代表任意的数据类型
        使用方式:
                不能创建对象使用,只能作为方法的参数使用
        List<?> list = new ArrayList<String>();
        注意:真正创建对象是右边new语句,如果左边已经声明,那么右边不写,系统可以自动填充,如果左边没有声明,那么右边必须声明,不能省略
        定义一个方法,能遍历所有类型的ArrayList集合
        这时候不知道ArrayList集合使用什么数据类型,可以使用泛型通配符?来接收数据
        注意:
                泛型没有继承的概念
泛型的限定
        上限的限定:?extends E代表使用泛型只能是E类型的子类或E本身
        下限的限定:?super E代表使用泛型只能是E类或者E的父类
Collections类
        static void shuffle(List<?>list):随机打乱集合中元素顺序
       
       


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马