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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shilu 中级黑马   /  2015-10-13 08:10  /  245 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合与数组的区别?
        共性:
                集合与数组都是一个容器
       
        区别:
                数组:
                        长度是固定的
                        数组中存储的元素要求数据类型一致
                        数组中存储的元素可以是基本数据类型也可以是引用数据类型
                       
                集合:
                        长度是可变的
                        集合中存储的元素数据类型随意
                        集合中存储的元素只能是引用数据类型,如果想存储基本数据类型,把基本数据类型变成 对应的包装类
                       
--------------------------
Collecton集合的特点:
Collection集合的继承图
                Collection:
*                         |- List 可以存储重复元素,有序的(元素存取顺序)
*                                 |- ArrayList
*                                 |- Vector
*                                 |- LinkedList
*                         |- Set 不能存储重复元素,无序的(元素存取顺序)
*                                 |- HashSet
*                                 |- TreeSet
------------------------
*                 方法:
*                         添加功能:
*                                 boolean add(Object e) 把给定的对象添加到当前集合中
*                                 boolean addAll(Collection c)把给定的集合中的元素,添加到当前集合中
*                         删除功能:
*                                 void clear() 清空集合中所有的元素
*                                 boolean remove(Object o) 把给定的对象在当前集合中删除
*                                 boolean removeAll(Collection c)把定义集合中的元素,在当前集合中删除
*                         判断功能:
*                                 boolean contains(Object o) 判断当前集合中是否包含给定的对象
*                                 boolean containsAll(Collection c) 判断当前集合中是否包含给定集合中的所有元素               
*                                 boolean isEmpty() 判断当前集合是否为空
*                                 boolean retainAll(Collection c)判断给定集合与当前集合中 是否有一样的元素
*                         遍历功能:
*                                 Iterator<E> iterator() 迭代器,用来遍历集合中的元素的
*                         获取功能:
*                                 int size() 返回集合中元素的个数
*                         转换功能:
*                                 Object[] toArray() 把集合中的元素,存储到数组中
-------------------------
* Iterator :  迭代器
*                 Object next()返回迭代的下一个元素
*                 boolean hasNext()如果仍有元素可以迭代,则返回 true。

----------------------------
  * List与Set集合的区别?
*                 List:
*                         它是一个有序的集合(元素存与取的顺序相同)
*                         它可以存储重复的元素                       
*
*                 Set:
*                         它是一个无序的集合(元素存与取的顺序可能不同)
*                         它不能存储重复的元素

--------------------------------
  * List集合中的特有方法
*                 void add(int index, Object element) 将指定的元素,添加到该集合中的指定位置上
*                 Object get(int index)返回集合中指定位置的元素。
*                 Object remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素
*                 Object set(int index, Object element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素
*
*                 ListIterator listIterator()返回此列表元素的列表迭代器

----------------------------------
  *  出现并发修改异常的原因:
*          在使用迭代器遍历集合的过程中,集合进行了元素的增删操作,导致了该问题的发生
*  
*  如何解决这个问题:
*          方式1: 不使用迭代器
*                  使用的集合中的add()方法,添加的元素在集合的末尾       
*                  [大师兄, 二师兄, 三师兄, 校花]
*  
*          方式2: 在使用迭代器的时候,不使用集合中的功能进行元素的增删操作
*                  使用的是ListIterator列表迭代器中的add()方法,添加的元素在 满足条件元素的后面添加
*                  [大师兄, 二师兄, 校花, 三师兄]
------------------------------------
ArrayList、Vector、LinkedList三者的区别?

        它们三者都是 List集合的子集合

        ArrayList:
                数据结构:  数组       
                线程不同步,说明代码执行效率高,有安全隐患
                元素的增删慢, 查找快
               
        Vector:
                数据结构: 数组
                线程同步的,说明代码执行效率低, 安全性好
                元素的增删慢, 查找快
       
        LinkedList:
                数据结构:链表
                线程不同步,说明代码执行效率高,有安全隐患
                元素的增删快, 查找慢
       

               

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

3 个回复

倒序浏览
感谢分享
回复 使用道具 举报
thank you  正找关于集合的东西呢!顶一个
回复 使用道具 举报
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马