集合1

集合与数组的区别?
共性:
集合与数组都是一个容器

区别:
数组:
长度是固定的
数组中存储的元素要求数据类型一致
数组中存储的元素可以是基本数据类型也可以是引用数据类型

集合:
长度是可变的
集合中存储的元素数据类型随意
集合中存储的元素只能是引用数据类型,如果想存储基本数据类型,把基本数据类型变成 对应的包装类

--------------------------
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:
数据结构:链表
线程不同步,说明代码执行效率高,有安全隐患
元素的增删快, 查找慢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值