`
klcwt
  • 浏览: 194674 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

集合中的集合

    博客分类:
  • java
阅读更多
1.Map系列
LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,其实基本上和HashMap差不多.
public class LinkedHashMap extends HashMap

java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap
Map主要用于存储健值对,根据键得到值,因此不允许键重复,但允许值重复。

Hashmap 是一个 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力.

Hashtable 与 HashMap类似,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。

LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.在遍历的时候会比HashMap慢。

TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的.

2.ArrayList和LinkedList的大致区别
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
    这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。  这一点我做了实验。在分别有200000条“记录”的ArrayList和LinkedList的首位插入20000条数据,LinkedList耗时约是ArrayList的20分之1。
4.查找操作indexOf,lastIndexOf,contains等,两者差不多。
5.随机查找指定节点的操作get,ArrayList速度要快于LinkedList.
分享到:
评论

相关推荐

    中英文翻译数据集百万数据集合

    中英文翻译数据集百万数据集合中英文翻译数据集百万数据集合中英文翻译数据集百万数据集合中英文翻译数据集百万数据集合中英文翻译数据集百万数据集合中英文翻译数据集百万数据集合中英文翻译数据集百万数据集合中...

    ll1文法和First集合follow集合

    如果一个产生式以ε(空符号)结束,那么ε也会被包含在First集合中,因为ε可以作为任何符号的前缀。 Follow集合则表示某个非终结符在文法中可能出现的位置,即当解析到这个非终结符时,期望接下来能遇到的符号...

    高中数学必修一集合练习题 .doc

    * 列举法:列出集合中的所有元素,如A={a,b,c}。 * 描述法:用语言描述集合的性质,如A={x|x>0}。 * 图形法:用图形表示集合,如用维恩图表示集合的交集和并集。 集合的运算 集合的运算包括: * 交集:A∩B={x|x...

    高中数学集合PPT课件.pptx

    除此之外,集合还可以用大写拉丁字母表示整个集合,而用小写拉丁字母表示集合中的元素,如集合C={a, b, c, d}。 高中数学集合课程不仅仅介绍了集合的基本概念,还对集合的运算进行了详细的讲解。例如,集合的运算...

    C++编程:建造集合类实训

    本文将详细讲解C++编程中集合类的实现,包括集合类的定义、添加元素、删除元素、判断集合是否为空或满、判断元素是否包含在集合中、计算集合中的元素总数、输出集合中的元素、求两个集合的交集和并集等操作。...

    顺序表表示集合,实现集合的交、并、差运算

    常见的集合运算包括交集(两个集合共有的元素构成的新集合)、并集(两个集合所有元素构成的新集合)以及差集(一个集合去除另一个集合中的元素后剩下的元素构成的新集合)。 ### 二、程序代码分析 #### 1. 数据...

    公理集合论导引.pdf

    选择公理是关于对集合中元素进行选择的一个假设,尽管它在直观上受到争议,但它是很多数学定理证明的一个重要工具。正则公理要求集合不包含自身作为元素,防止出现如罗素悖论这样的自指矛盾。替换公理允许我们从一个...

    java集合与通用集合

    `Set`接口确保集合中的元素唯一,不允许重复,并且支持数学集合操作,如交集和并集。常见的实现类有`HashSet`、`TreeSet`和`LinkedHashSet`。`List`接口则维护元素的顺序,并允许通过索引访问,常见的实现类有`...

    Java SE程序 集合中判断对象相等

    Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中...

    c++程序设计实现集合交集并集差集.pdf

    该类中包含了多个成员函数,用于实现集合的基本运算,例如添加元素、删除元素、判断元素是否在集合中、输出集合等。 首先,我们定义了 int_set 类的构造函数,用于初始化集合的最大大小和当前大小。然后,我们定义...

    C语言集合运算器课设报告

    - 实现集合的差集:从一个集合中去除另一个集合的所有元素。 - 求集合的补集:找出不在集合中的所有元素。 - 集合的子集判定:判断一个集合是否为另一个集合的子集。 - 元素判定:判断一个元素是否属于某个集合。 ...

    java 集合

    而`Iterable`接口是集合可迭代的标志,通过`iterator()`方法获取迭代器,遍历集合中的元素。`Map`接口则是用于存储键值对的数据结构,`HashMap`、`TreeMap`和`LinkedHashMap`是常见的实现。 关于源码,Java集合框架...

    集合论基础 PDF 高清完整带目录版

    - **描述法**:用描述集合中元素的共同特征来表示集合,如{x | x 是正整数且 x 。 #### 3. 元素与集合的关系 如果a是集合A的一个元素,则记作a ∈ A;反之,如果a不是集合A的一个元素,则记作a ∉ A。 ### 集合的...

    Java集合 练习代码

    HashSet是不包含重复元素的集合,它不保证集合中元素的顺序,允许使用null值。HashSet的实现依赖于HashMap,因此其操作速度较快。在day20的代码中,可能包含添加元素到HashSet,检查元素是否存在,以及删除元素的...

    实验05 Java集合.doc

    此外,数组只能存储基本类型和引用类型,而集合只存储对象,但通过自动装箱机制,基本类型也可以在集合中使用。 对于TreeSet实现第一题的问题,可以创建一个TreeSet,然后添加Person对象,由于TreeSet会自动根据...

    EnKF集合卡尔曼滤波代码.zip_EnKF_utr_扰动观测_集合卡尔曼_集合滤波

    这种扰动可以是高斯噪声或其他类型的分布,目的是让集合中的每个成员都对应一个带有观测误差的版本,从而更好地捕捉系统的不确定性。 "集合卡尔曼"是指使用EnKF的方法来执行卡尔曼滤波。传统卡尔曼滤波假设系统和...

    集合论基础

    “关系”是数学中一种表示两个集合元素间对应的方式,如果集合中的每一对元素都有确定的“关系”存在,那么这两个集合之间的这种对应关系可以被看作是一个集合,称为序对的集合。例如,集合A中的每一个元素都与集合B...

    朴素集合论-9、集合论悖论

    ### 朴素集合论中的集合论悖论 #### 集合论悖论概述 集合论作为数学的一个基础分支,其发展历史中充满了挑战与革新。其中最著名的挑战之一便是所谓的集合论悖论。这些悖论揭示了朴素集合论中的一些根本性问题,...

Global site tag (gtag.js) - Google Analytics