zoukankan      html  css  js  c++  java
  • array,集合(collection),集合(list)的区别

    集合只能存储简单数据类型,例如:List<Integer> = new ArrayList<>();这里存储的也是引用类型

    1--数组

    1:对象数组(掌握)  
        (1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。  
        (2)案例:  
            用数组存储5个学生对象,并遍历数组。  

    2--一般的集合(collection)

    Collection  
                |--List  
                    |--ArrayList  
                    |--Vector  
                    |--LinkedList  
                |--Set  
                    |--HashSet  
                    |--TreeSet

    集合和数组的区别:

    集合和数组的区别?  
            A:长度区别  
                数组固定  
                集合可变  
            B:内容区别  
                数组可以是基本类型,也可以是引用类型  
                集合只能是引用类型  
            C:元素内容  
                数组只能存储同一种类型  
                集合可以存储不同类型(其实集合一般存储的也是同一种类型)  

    用法:

    
    

    Collection的功能概述
    A:添加功能
    boolean add(Object object):添加一个元素。
    boolean addAll(Collection c):添加一个集合的元素。
    B:删除功能
    vouid clear():移除所有元素。
    boolean remove(Object o):移除一个元素。
    boolean removeAll(Collection c):移除一个集合的元素。(是一个还是所有)
    C:判断功能
    boolean contains(Object o):判断集合中是否包含指定的元素。
    boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。(是一个还是所有)
    boolean isEmpty():判断集合是否为空。
    D:获取功能
    Iterator<E> iterator():(重点)
    E:长度功能
    int size():元素的个数。
    面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?
    没有,有,没有
    F:交集(了解)
    boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回boolean又是什么意思呢?
    G:把集合转数组(了解)
    Object[] toArray():

    3--list

    List集合的特有遍历功能  
            A:由size()和get()结合。  
            B:代码演示  
                        //创建集合对象  
                        List list = new ArrayList();  
                          
                        //创建并添加元素  
                        list.add("hello");  
                        list.add("world");  
                        list.add("java");  
                          
                        //遍历集合  
                        Iterator it = list.iterator();  
                        while(it.hasNext()) {  
                            String s =(String) it.next();  
                            System.out.println(s);  
                        }  
                        System.out.println("----------");  
                          
                        for(int x=0; x<list.size(); x++) {  
                            String s =(String) list.get(x);  
                            System.out.println(s);  
                        }  
        (4)列表迭代器的特有功能;(了解)  
            可以逆向遍历,但是要先正向遍历,所以无意义,基本不使用。  
        (5)并发修改异常  
            A:出现的现象  
                迭代器遍历集合,集合修改集合元素  
            B:原因  
                迭代器是依赖于集合的,而集合的改变迭代器并不知道。  
            C:解决方案  
                a:迭代器遍历,迭代器修改(ListIterator)  
                    元素添加在刚才迭代的位置  
                b:集合遍历,集合修改(size()和get())  
                    元素添加在集合的末尾  
        
        (6)常见数据结构  
            A:栈 先进后出  
            B:队列 先进先出  
            C:数组 查询快,增删慢  
            D:链表 查询慢,增删快  
        (7)List的子类特点(面试题)  
            ArrayList  
                底层数据结构是数组,查询快,增删慢。  
                线程不安全,效率高。  
            Vector  
                底层数据结构是数组,查询快,增删慢。  
                线程安全,效率低。  
            LinkedList  
                底层数据结构是链表,查询慢,增删快。  
                线程不安全,效率高。  
                  
            到底使用谁呢?看需求?  
            分析:  
                要安全吗?  
                    要:Vector(即使要,也不使用这个,后面再说)  
                    不要:ArrayList或者LinkedList  
                        查询多;ArrayList  
                        增删多:LinkedList  
                          
            什么都不知道,就用ArrayList。  
        (8)List集合的案例(遍历方式 迭代器和普通for)  
            A:存储字符串并遍历  
            B:存储自定义对象并遍历  

    引用:http://blog.csdn.net/l1585931143/article/details/53749787

  • 相关阅读:
    php关于网页乱码问题
    EditPlus编写PHP使用技巧
    Dedecms当前位置(面包屑导航)的处理
    css有关鼠标移动上去图片变透明度变化
    CSS之Position详解
    如何修改FlashFXP默认编辑工具使用记事本打开
    ecshop点击订购、加入按钮没反应的解决方法
    kindEditor完整认识 PHP上调用并上传图片说明
    OpenCV 实现分水岭算法
    OpenCV 矩形轮廓检测
  • 原文地址:https://www.cnblogs.com/tongBJ/p/7146577.html
Copyright © 2011-2022 走看看