list、set、map的区别_第1页
list、set、map的区别_第2页
list、set、map的区别_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

集合-集合中的值不允许是重复的或无序的数据结构。列表-其中的值允许重复,因为它们是有序的数据结构。映射-成对的数据结构,键值必须是唯一的(键不能相同,否则值被替换)列表按对象输入的顺序保存对象,不进行排序或编辑。集合只接受每个对象一次,并使用它自己的内部排序方法(通常,你只关心一个元素是否属于集合,而不是它的顺序否则你应该使用列表)。Map也为每个元素保存一个副本,但这是基于“键”的。地图也有内置的排序,所以它不关心元素添加的顺序。如果添加元素的顺序对您很重要,您应该使用LinkedHashSet或LinkedHashMap。列表的功能方法事实上,有两种列表。一个是基本的数组列表,它具有随机访问元素的优势,另一个是更强大的链表,它不是为快速随机访问而设计的,但是有一个更通用的方法。列表:的顺序是列表最重要的特征:它保证维持元素的特定顺序。列表向集合中添加了许多方法,允许在列表的中间插入和移除元素(这仅适用于链接列表)。列表可以生成一个列表迭代器,它可以用来从两个方向遍历列表,并在列表中间插入和移除元素。数组列表:列表由数组实现。允许对元素进行快速随机访问,但是在列表中间插入和移除元素的速度很慢。ListIterator只能用来来回遍历数组列表,而不能用来插入和移除元素。因为它比LinkedList贵得多。LinkedList :优化了顺序访问,在列表中间插入和删除不会花费太多。随机访问相对较慢。(请改用数组列表。)也有以下方法:addfirst()、addlast()、getfirst()、getlast()、removefirst()和removeLast()。这些方法(没有在任何接口或基类中定义)使LinkedList能够用作堆栈、队列和双向队列。集合的函数方法集合与集合具有完全相同的接口,因此它没有附加功能,不同于它前面的两个不同的列表。事实上,集合是集合,但是行为是不同的。(这是继承和多态性的典型应用:显示不同的行为。)集合不保存重复的元素(它更负责如何判断相同的元素)集合:存储在集合中的每个元素必须是唯一的,因为集合不存储重复的元素。添加到集合的元素必须定义equals()方法,以确保对象的唯一性。集合和集合具有完全相同的接口。集合接口不保证元素的维护顺序。HashSet :是一个为快速搜索而设计的集合。存储在哈希集中的对象必须定义哈希码()。树集合:保存顺序集合,底层是树结构。它可用于从集合中提取有序序列。LinkedHashSet :具有HashSet的查询速度,并使用链表在内部维护元素的顺序(插入的顺序)。因此,当迭代器用于遍历集合时,结果将按照元素插入的顺序显示。地图的功能方法方法put(对象键,对象值)添加一个“值”(您想要的)和一个与“值”相关联的“键”(用它来查找)。方法get(对象键)返回与给定“键”相关联的“值”您可以使用包含键()和包含值()来测试映射中是否包含“键”或“值”。标准的Java类库包含几个不同的映射:HashMap、Treemap、链接HashMap、弱HashMap、身份HashMap。它们都有相同的基本接口映射,但是行为、效率、排序策略、保存对象的生命周期以及确定“键”的等价性的策略是不同的。执行效率是地图的一个大问题。如果你看看get()要做什么,你就会明白为什么在数组列表中搜索“键”是相当慢的。这就是HashMap提高速度的地方。HashMap使用一个称为“哈希码”的特殊值来代替缓慢的关键字搜索。“哈希代码”是“相对唯一的”来表示对象的int值。它是通过转换对象的某些信息而生成的。所有的Java对象都可以生成哈希代码,因为hashCode()是在基类对象中定义的方法。HashMap使用对象的hashCode()进行快速查询。这种方法可以显著提高性能。映射:维护“键-值对”的相关性,因此您可以通过“键”找到“值”HashMap :映射是基于哈希表实现的。插入和查询“键值对”的成本是固定的。容量和负载因子负载因子可以由构造器设置,以调整容器的性能。LinkedHashMap :类似于HashMap,但是当遍历它时,获得“键值对”的顺序是它们被插入的顺序,或者它们最近最少被使用的顺序(LRU)。只比哈希映射慢一点。迭代访问速度更快,因为它使用链表来维护内部顺序。树形图:是基于红黑树数据结构的实现。当查看“键”或“键-值对”时,它们被排序(顺序由比较器或比较器决定)。树形图的特点是你得到的结果是有序的。TreeMap是唯一使用subMap()方法的映射,它可以返回一个子树。弱键)地图,地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论