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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vvvvvc 中级黑马   /  2016-6-2 01:18  /  518 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对象数组:
        里面的元素其实都是对象的地址
        int[] arr = {1,2,3,4}
        String[] arr = {"abc","d"}

数组和集合的区别:
        1、长度:数组固定长度,集合可以随着元素的个数,来变化自己的长度
        2、元素类型:数组可以存储基本数据类型和引用数据类型,
                                集合只能存储引用数据类型

集合的体系结构:
        Collection
                List        有序、有索引、可以重复
                        ArrayList        数组
                        LinkedList        链表
                        Vector                数组
                Set                无序、没有索引、不可以重复
                        HashSet
                        TreeSet


Collection基本功能:
        1、add        返回值类型
                如果添加成功就返回true,ArrayList添加的时候总是成功,所以都是返回true
                如果添加失败就返回false
        2、toString,直接打印了集合中的内容,所以我们知道,是重写了toString方法
        3、remove删除的是第一次的这个元素
        4、clear();
        5、判断是否为空isEmpty();
        6、size(),判断集合中的元素的个数
        7、        黄线,是一个警告,不影响编译和运行,只是一个提示
                如果一个地方出现了警告,那么整个文件、包、src文件夹、和项目都会出现警告


带All的方法:
        1、c.addAll(c1);
        2、c.removeAll(c1);
        3、c.containsAll(c1);       
        4、c.retainAll(c1);


迭代器:
        Iterator it = c.iterator()获取到迭代器对象
        while(it.hasNext()){
                it.next()
        }


List的特有方法:
        1、add(index, ele),指定索引的时候index<=size
        2、remove(index),不会自动装箱,所以如果存储的是包装类型,就没有办法直接删除对象
                                        连续删除相邻位置,需要注意,在删除某个元素之后,其他元素的索引发生了变化
        3、get(index)
                可以配合size方法来进行集合的遍历
        4、set(index,ele)设置指定位置上的元素


并发修改异常:
        ConcurrentModificationException
        产生的原因:在使用迭代器来进行遍历的同时,还使用集合对象来进行修改

        解决:只使用一个对象来进行操作
       
        而Iterator没有add方法,因此,使用其子接口:ListIterator来进行遍历和添加


Vector:
        1、1.0版本出现,之后不被重用
        2、 Enumeration en = v.elements();
                en.hasMoreElements();
                en.nextElement();


数组和链表的数据结构:
        数组:        查询快修改快(原因:就是通过计算,一次找到相应的元素)        int[] arr = new int[]{1,2,3,4,5,6,7,8}
                        增删慢
        链表:        查询慢修改慢
                        增删快        要增加的位置左右两端的节点的next和pre修改一下就行,其余元素都不需要修改


List三个子类的特点和区别:
        1、 Vector ArrayList LinkedList
        2、        Vector和ArrayList都是数组实现,Vector是线程安全的,效率低
                ArrayList是线程不安全的,效率高,增删慢,查询修改快
                LinkedList底层是链表,线程不安全,效率高,增删快,查询修改慢
                       

0 个回复

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