java collection集合
2019-05-22 06:33:55来源:博客园 阅读 ()
集合:用于存储对象的容器。集合中可以存储任意类型的对象,长度可变。
集合和数组的比较
- 集合和数组都是存储对象的容器,不同的是,数组只能存储基本数据类型(int、short、long、char、Boolean、double、float、byte),集合可以存储任意类型的对象。
- 数组长度是固定的,集合的长度是可变的(根据加载因子和扩容增量来完成扩容)。
数组操作复杂,在java中可用方法少,集合操作简单,有很多操作方法。
对于集合,顶层都实现了Iterable接口,表明集合都是可迭代的,可以视同iterable()方法获取集合对于的迭代器,也可以使用增强的for循环进行迭代。
1、Collection:collection为所以集合的定级接口,继承了Iterable类,表明所有集合类都是可迭代的。
2、List: 实现了Collection接口,存储的数据是有序的、可重复的,可通过索引进行元素访问。
3、ArrayList:底层实现为数组,线程不安全,查找效率高,增删效率低。
4、Vector:由下图可知vector和ArrayList实现原理相同,但是vector是线程安全的(synchronized),效率略低于ArrayList。
5、Stack:继承Vector,是一个先进后出的栈。
6、LinkedList:底层实现为双向链表,进行元素的增删效率高,查询效率低。
7、Queue:队列,先进先出(FIFO)
8、Set:存储的元素是无序的、唯一的。在程序运行中,如果使用add添加一个已经存在的元素,将返回false。
9、HashSet:底层实现为哈希表(链表+数组),线程不安全,查找效率高,增删效率低,通过元素的hashCode和equels方法保证了元素的唯一性。
上图为HashSet底层实现模式哈希表(数组+链表),当一条链上元素超过8个以上后,会自动转换为红黑树来存储元素,提高查询效率。
11、TreeSet:底层实现为二叉树,线程不安全,可对元素进行自动排序,保证元素唯一性的方式是compareTo方法返回0。
12、LinkedHashSet:底层实现为链表和哈希表,线程不安全,存储的元素时有序的、唯一的,通过元素的hashCode和equels方法保证了元素的唯一性。
Arrays:类Arrays为集合的工具类,可使用该类的方法对集合进行排序、转换为list等操作。
Collections:为所有直接或间接实现了Collection接口的集合类的工具类,该类封装了对集合的各种操作,如排序、反转、替换等操作。
原文链接:https://www.cnblogs.com/www-123456/p/10896844.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash