java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5033| 回复: 0

java集合Collection集合小结

java集合Collection集合小结

Collection集合:

只能存储引用类型的数据, 单个存储

基本操作: add(), remove(), contains(), size(), iterator()

List集合

特点: 存储的元素是有序,可重复的

为每个元素指定一个索引值

增加的方法, 针对索引值的操作, listIterator(), subList(), sort(Comparator)

ArrayList集合

底层是数组, 访问快, 添加/删除效率低

初始化容量: 10, 扩容: 1.5倍

Vector集合

底层是数组, 它是线程安全的, ArrayList不是线程安全的

初始化容量: 10, 扩容: 2倍

LinkedList集合

底层是双向链表, 添加/删除效率高, 访问慢

List集合应用场景

ArrayList适用于以访问为主, 很少添加/删除的情况

LinkedList适用于经常添加/删除的情况

Set集合

特点: 数据无序,不可重复

HashSet集合

底层是HashMap, HashSet实际上就是HashMap键的集合

TreeSet集合

底层是TreeMap, TreeSet实际上就是TreeMap键的集合

TreeSet实现了SortedSet接口, 可以对元素自然排序, 要求元素必须是可比较的

  1. 在构造方法中指定Comparator比较器对象
  2. 如果没有Comparator比较器, 集合元素的类必须实现Comparable接口

Set集合的应用场景

如果不需要对Set集合进行排序就选择HashSet

如果需要对Set集合的元素进行排序就选择TreeSet

注意:

List集合/HashSet集合的contains( e ) / remove( e )等方法需要调用对象的equals()方法, 这些集合中的元素的类需要重写equals()方法

TreeSet集合中contains( e )/ remove( e) 等方法判断是否同一个对象是根据Comparator/Comparable的比较结果是否为0来判断的, 如果比较结果为0表示同一个元素


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1175_1_1.html

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018