Java集合:List、Set和Map的区别,ArrayList和LinkedList有何区别..........
2024-08-26 11:36:53
一、数组和集合的区别:
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型);
集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。
数组和集合相比唯一的有点就是速度快。
二、Java集合分类:
1.Collection(接口):派生的两个子接口:List和Set
List(列表):有序、可重复元素,可以插入多个null元素。实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
Set(集):无序、不可重复元素,最多有一个null元素。
2.Map(映射):不是collection的子接口或者实现类,Map是一个接口。Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。
三、几个重要区别
1. List、Set和Map的区别
List:有序、可重复元素,可以插入多个null元素。
Set:无序、不可重复元素,最多有一个null元素。
Map:集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。它的有些实现类能对集合中的键对象进行排序。
2.ArrayList和LinkedList的区别?
(1). ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
(2). 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
(3). 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
3.HashTable和HashMap的区别?
(1). HashTable:继承自Dictionary类,不接受为null的键值(key)和值(value),线程安全
(2). HashMap:继承自AbstractMap类,可接受为null的键值(key)和值(value),线程不安全
最新文章
- 【兼容写法】HttpServerUtility.Execute 在等待异步操作完成时被阻止。关键词:MVC,分部视图,异步
- JS代码判断IE6,IE7,IE8,IE9!
- HashMap遍历的两种方式
- WordPress用户注册无法发送密码邮件怎么回事?
- Python解析器源码加密系列之(一):标准c的tmpfile()、tmpfile_s()生成的临时文件究竟放在哪里了?
- POJ 2492 并查集扩展(判断同性恋问题)
- C++-bool的值
- Android中View绘制流程以及invalidate()等相关方法分析(转载的文章,出处在正文已表明)
- perl5 第八章 子程序
- hibernate 单元测试 5.2
- iOS10 CAAnimationDelegate的适配
- 用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
- H5页面基于接口实现数据交互
- JAVA_SE基础——52.匿名内部类
- mysql:mysql is neither service nor target!?(suse12 sp2 )
- latex之行内公式与行间公式
- 《Gradle权威指南》--Gradle插件
- mybatis batchinsert
- bootstrap 警告框单个删除
- 制作windows服务