`

数据结构-集合

 
阅读更多

数据结构

 

 

 

 

集合类图

 

 

 



 


.容器中装的都是对象,因为它要把对象放到堆上面,但是1.5后就可以自动包装
  map.put("one",new Integer(1))
  1.5后可以 map.put("one",1);

 

List

有序的、可重复的、按索引位置排序  (这点类似于数组)

实现类

ArrayList   数组实现

1.      代表长度可变的数组

2.      允许对元素进行快速的随机访问(根据索引进行访问)

3.      向ArrayList中插入和删除元素的速度较慢,需要移动大量的元素

LinkedList  双向链表实现

1.      插入和删除元素的速度较快(不需要移动元素)

2.      随机访问的速度相对较慢,随机访问的含义是根据索引定位特定位置的元素

3.      提供addFirst(0 addLast() getFirst() get拉斯特() removeFirst()和removeLast()方法,使LinkedList可以作为堆栈,队列和双向队列使用

Set

无序的、不可重复的、

实现类

HashSet 哈希算法实现、底层是HashMap实现,用到了key的部分。

1.      按照哈希算法存取集合中的对象,具有很好的存取和查找性能

2.      当向集合中加入一个对象时,Hashset会调用对象的hashCode()方法获得哈希码,然后根据哈希码进一步计算对象在集合中的存放位置

3.      在Java.lang.Object中定义了hashCode()和equals()方法,在最原始的Object中定义的equals()方法是按照内存地址比较对象是否相等,因此对于Object而言,如果equals方法的结果为true,则说明两个引用实际上引用相同的对象,这两个引用的哈希码必然也相同

为保证HashSet能够正常工作,要求两个对象用equals()方法比较的结果为true时,他们的哈希码也相同

如果用户定义的类覆盖了Object的equals方法而没有覆盖hashCode方法,会导致当equals方法结果为true时,对象的哈希码并不相同,这样会使hashSet无法正常工作,用户本意是作为同一个对象引用处理,但是由于没有覆盖hashCode()方法,导致哈希码不同,hashSet将作为不同对象处理。

 

SortedSet

排序的set

实现类

TreeSet,在HashSet的基础上维护了一个双向链表,

1.      排序的依据对象实现实现了Comparable接口,或者是构造时传入Comparator比较器。像Integer,Double和String他们自己都实现了Compareble接口

 

Map

Key 唯一的,key不可重复的。Value可重复。

实现类

HashMap

 

SortedMap

TreeSet基于TreeMap实现,支持排序

TreeSet是非线程安全的

分享到:
评论

相关推荐

    数据结构-集合运算.docx

    数据结构中的集合运算通常涉及到集合的基本操作,如交集、并集、差集以及对称差等。在本设计题目中,集合A和B通过单链表进行存储,元素类型为int,且按照非递减顺序排列。以下是设计的具体内容和实现要求: 1. **...

    数据结构-集合(Set)介绍和Java示例代码

    数据结构中的集合(Set)是一种基础且重要的概念,尤其在编程语言如Java中。集合类在Java中提供了多种实现,包括HashSet、TreeSet等,它们都遵循集合的基本特性:唯一性、无序性和可变大小。 唯一性是集合的核心...

    Go数据结构-集合、列表、堆栈、地图、树、队列等等

    本篇文章将深入探讨Go语言中的集合、列表、堆栈、地图、树和队列等数据结构,以及它们的实现和应用场景。 首先,集合(Set)是一种不包含重复元素的数据结构,通常用于成员测试和去重。在Go中,由于没有内置的集合...

    数据结构---C语言描述-(耿国华)-高等教育出版社出版-课后习题答案

    (5)集合结构、线性结构、树形结构、图状结构:数据结构可以分为集合结构、线性结构、树形结构、图状结构等多种类型,每种结构都有其特点和应用场景。 (6)顺序存储、非顺序存储:数据结构可以采用顺序存储和非...

    数据结构实验-集合的并交差运算实验报告.doc

    数据结构实验-集合的并交差运算实验报告.doc

    数据结构-数据集合和搜索.pdf

    数据结构中的集合是一种基本概念,它代表了不同对象的无序组合。集合中的元素之间没有固有的关系,它们只是共享属于同一集合的状态。在数学上,集合可以用大括号{}来表示,例如{1,2,3}。集合的一个关键特性是元素的...

    数据结构课程设计----集合的并、交和差运算

    这篇文档是关于一个数据结构课程设计项目,目标是创建一个程序来演示集合的并、交和差运算。项目的关键在于理解和实现集合的概念以及相关的运算,同时利用数据结构,特别是有序链表来存储和操作集合。 首先,集合的...

    数据结构课程设计报告--集合运算

    在本课程设计报告中,学生将探讨两个主要的计算机科学概念:汉诺塔问题和集合运算,这些都是数据结构课程中的核心内容。 首先,汉诺塔问题是一个经典的递归问题,其目标是通过移动圆盘从一个柱子到另一个柱子,遵循...

    06 Python数据结构-元组与集合.pptx

    06 Python数据结构-元组与集合.pptx

    数据结构-清华大学-严蔚敏

    数据结构的定义是数据元素集合及数据元素之间关系的集合。数据元素之间的逻辑关系可以分为四种基本类型:集合、线性结构、树型结构和图状结构或网状结构。这四种类型的数据结构在计算机内存中的存储方式可以是顺序...

    C++ 数据结构算法集合.zip

    C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据结构算法集合 C++ 数据...

    P-集合与数据挖掘-还原.pdf

    P-集合与数据挖掘的还原概念,是一种在已知数据集基础上通过动态特性的转化来发现未知数据的技术,主要利用了P-集合的双向动态特征,即通过元素迁移来改变数据属性集的内部和外部结构,从而实现对数据的还原与挖掘。...

    数据结构课程设计1--集合的运算.zip

    在这个名为“数据结构课程设计1--集合的运算.zip”的压缩包中,我们可以看到一个关于集合运算的数据结构课程设计项目。这个项目不仅包含了源代码,还有对应的课设报告,为我们提供了深入理解集合运算在实际编程中的...

    数据结构-清华教材

    首先,数据结构主要研究的是数据的组织方式,包括线性结构(如数组、链表)、树形结构(如二叉树、堆)、图结构、集合以及特殊的存储结构(如散列表)。这些结构的设计目的是为了提高数据访问和操作的效率。 1. **...

    数据结构-绪论.ppt

    例如,图书馆书目自动检索系统中的数据结构可以是书名、作者名、分类号等的集合,通过不同的排序和索引形成线性表、树或图。同样,计算机文件系统、计算机与人的棋类游戏,以及多叉路口的交通灯管理系统,都涉及到...

    数据结构试验报告-集合的交并差.doc

    数据结构实验报告-集合的交并差运算 本文是对数据结构实验报告-集合的交并差运算的总结,主要介绍了集合的抽象数据类型、有序链表的实现、集合运算(交集、并集、差集)的实现。 一、集合的抽象数据类型 在数据...

    python-数据结构-书.docx

    Python数据结构:介绍Python中常用的数据结构,包括列表、元组、字典、集合等,以及它们的特点、使用方法、操作等。 3. 算法基础知识:介绍算法的基本概念、分类、特点等内容,包括排序、查找、递归、分治等。 4. ...

    数据结构---学习指导

    ### 数据结构学习指导知识点梳理 #### 一、数据结构概览 - **研究目的与内容**:数据结构作为计算机科学的基础领域之一,旨在研究如何高效地组织和存储数据,以便于进行快速检索和处理。其核心研究内容包括数据的...

Global site tag (gtag.js) - Google Analytics