集合和泛型

A:Collection的功能概述
        a:添加功能
            boolean add(Object obj):添加一个元素  :c.add(1)
            boolean addAll(Collection c): 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。:c.add(c)
        b:删除功能
            void clear():移除所有元素
            boolean remove(Object o):移除一个元素
            boolean removeAll(Collection c):移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素
            如果没有交集元素 则删除失败 返回false
        c:判断功能
            boolean contains(Object o):判断集合中是否包含指定的元素    
            boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
            比如:1,2,3 containsAll 12=true   1,2,3 containsAll 2,3,4=false
            boolean isEmpty():判断集合是否为空
        d:获取功能
              Iterator<E> iterator()(重点)
        e:长度功能
            int size():元素的个数
            面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?
        f:交集功能
            //例如:A集合对B集合取交集,获取到的交集元素在A集合中。返回的布尔值表示的是A集合是否发生变化
            boolean retainAll(Collection c):获取两个集合的交集元素(交集:两个集合都有的元素)
        g:把集合转换为数组
            Object[] toArray()

B:1)集合的遍历  
        toArray() 把一个集合转成数组                     :Object[] objs  =c.toArray() ;
        
        其实就是依次获取集合中的每一个元素。


  2)用迭代器遍历

C:  1)    A:List的三个子类的特点
        ArrayList:
            底层数据结构是数组,查询快,增删慢。
            线程不安全,效率高。
        Vector:
            底层数据结构是数组,查询快,增删慢。
            线程安全,效率低。
        LinkedList:
            底层数据结构是链表,查询慢,增删快。
            线程不安全,效率高。


   2)3个子类分别什么时候用:

        线程安全用:Vector
                 查找多:ArrayList
        增删多:LinkedList


D:1):List集合的特有功能概述
        void add(int index,E element):    在指定索引处添加元素     :l.add(0,"qwer");
        E remove(int index):移除指定索引处的元素  返回的是移除的元素
        E get(int index):获取指定索引处的元素
        E set(int index,E element):更改指定索引处的元素 返回的而是被替换的元素 :System.out.println( l.set(2 ,"sss"));


E:Vector的特有功能

    1):Vector类概述:    Vector 类可以实现可增长的对象数组 , Vector 是同步的。
    2):Vector类特有功能
        public void addElement(E obj)
        public E elementAt(int index)
        public Enumeration elements()

F:LinkedList的特有功能
    A:LinkedList类概述:  List 接口的链接列表实现 , 此实现不是同步的
    B:LinkedList类特有功能
        public void addFirst(E e)及addLast(E e)
        public E getFirst()及getLast()
        public E removeFirst()及public E removeLast()

G:1):泛型概述:是一种把类型明确的工作
    推迟到创建对象
    或者调用方法的时候才去明确的特殊的类型。
    参数化类型,把类型当作参数一样的传递。
    2):泛型的格式    :    <数据类型>    这里的数据类型只能是引用数据类型
    3):泛型好处
        (1): 把运行时期的问题提前到了编译期间
        (2): 避免了强制类型转换
        (3):优化了程序设计,解决了黄色警告线
        注意:泛型只在编译期有效  但在运行期就擦除了
    4):泛型基本使用

H:1):泛型通配符<?>:        任意类型,如果没有明确,那么就是Object以及任意的Java类了
    2):? extends E:            向下限定,E及其子类
    3):? super E:            向上限定,E及其父类

L:1):增强for概述
        简化数组和Collection集合的遍历
    2):格式:
        for(元素数据类型 变量 : 数组或者Collection集合) {
            使用变量即可,该变量就是元素
        }
    3):案例演示
        数组,集合存储元素用增强for遍历
    4):好处和注意事项
        简化遍历
        注意事项:增强for的目标要判断是否为null

猜你喜欢

转载自blog.csdn.net/qq_42736375/article/details/81393906