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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雨中的微笑 初级黑马   /  2018-8-11 13:30  /  945 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

List和Set的区别:
1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 ,实现类有HashSet,TreeSet。
3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 ,实现类有ArrayList,LinkedList,Vector,CopyOnWriteArrayList。

ArrayList与Vector的区别:

  • 两者都是基于索引,内部结构是数组
  • 元素存取有序并都允许为null
  • 都支持fail-fast机制
  • Vector是同步的,不会过载,而ArrayList不是,但ArrayList效率比Vector高,如果在迭代中对集合做修改可以使用CopyOnWriteArrayList
  • 初始容量都为10,但ArrayList默认增长为原来的50%,而Vector默认增长为原来的一倍,并且可以设置
  • ArrayList更通用,可以使用Collections工具类获取同步列表和只读列表

ArrayList与LinkedList的区别:

  • 两者都是List接口的实现类
  • ArrayList是基于动态数组的数据结构,而LinkedList是基于链表的数据结构
  • 对于随机访问get和set(查询操作),ArrayList要优于LinkedList,因为LinkedList要移动指针
  • 对于增删操作(add和remove),LinkedList优于ArrayList

ArrayList与LinkedList的适用场景:
   当需要对数据进行对此访问的情况下选用ArrayList,当需要对数据进行多次增加删除修改时采用LinkedList


0 个回复

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