链表List

集合 set

集合的特点:无序 不重复

实现类:

  1. HashSet:使用被插入对象的Hash码
  2. LinkedHashSet:HashSet的ordered版本(扩展了顺序,即可以存储有序数据)
  3. TreeSet:(Huffman)二叉树结构,保证元素的自然顺序进行升序排序

构造方法

  1. HashSet():构造一个空散列集,其底层 HashMap 实例的默认初始容量是 16

常用方法

增加 删除 清空 看大小

实现类

  1. HushSet

三个实现类的比较

HashSet

  1. 不能保证元素的排列顺序,顺序有可能发生变化
  2. 不是同步的,集合元素可以是null,但只能放入一个null
  3. 哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放

LinkedHashSet

  1. 以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
  2. 遍历性能比HashSet好,但是插入时性能稍微逊色于HashSet

TreeSet

提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快;
按照字母值排序

队列 Queue

特点

  1. 队列是一种特殊的线性表,只允许在表的前端(front,队头)进行删除操作,而在表的后端(rear,队尾)进行插入操作 先进先出
  2. 继承了Collection接口
  3. LinkList实现了Queue接口

常用方法

  1. add(E e): 在 队尾增加一个元素。成功时返回true,如果队列已满,则抛出一个IIIegaISlabEepeplian异常
  2. remove(): 移除并返回队列头部的元素。如果队列为空,则抛出一个NoSuchElementException异常
  3. Element(): 返回队列头部的元素。如果队列为空,则抛出一个NoSuchElementException异常
  4. offer(E e): 添加一个元素并返回true。如果队列已满,返回false
  5. == poll()==: 移除并返问队列头部的元素。如果队列为空,则返回null
  6. peek(): 返回队列头部的元素。如果队列为空,则返回null

Map接口 (映射 字典Dictionary) 基于Set

映射

  1. 对象以键-值对(key-value)存储
  2. key不允许有重复,value允许有重复

Map中元素,可以将key序列、value序列单独抽取出来

  1. 使用keySet()抽取key序列,将map中的所有keys生成一个Set
  2. 使用values()抽取value序列,将map中的所有values生成一个Collection

常用方法

  1. Object put(K key,V value) 增加元素 成对增加
  2. Object get(Object K) 通过key得到value
  3. containsKey(Object K) 是否包含
  4. containsValue(Object v) 是否包含

java 容器(联系数据结构)相关推荐

  1. Java 容器学习之 HashMap

    前言 把 Java 容器的学习笔记放到 github 里了,还在更新~ 其他的目前不打算抽出来作为文章写,感觉挖的还不够深,等对某些东西理解的更深了再写文章吧 Java 容器 目录如下: Java 容 ...

  2. java 容器_我也来聊聊,JAVA容器与迭代器

    java的容器与迭代器是一个老生常谈的话题了. 本文旨在与大家分享一些关于双向链表与迭代器的运用小技巧,并希望本篇文章的内容能够在项目中给你带来帮助. Stack与LinkedList Stack是一 ...

  3. 后端学习 - Java容器

    文章目录 一 简介 二 底层数据结构总结 1 List 2 Set 3 Queue 4 Map 三 Collection 的子接口 List 1 ArrayList 与 Vector 2 ArrayL ...

  4. 【Java心得总结六】Java容器中——Collection

    在[Java心得总结五]Java容器上--容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...

  5. java compareto方法怎么排序的_很简单却能让你面试头疼得Java容器,这里从源码给你解释清楚

    之前在整理Redis的五大数据结构的时候,其中提到了list.set等知识点的时候,就想起来刚上大学那会的青涩时光,抱着一本Java生啃得时候得傻样,跟女朋友交流的时候,她说那你怎么不也顺便整理一下啊 ...

  6. Java容器-面试题

    1. Java 容器都有哪些? Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示: Collection List ArrayList LinkedList V ...

  7. 《Java程序设计与数据结构教程(第二版)》学习指导

    <Java程序设计与数据结构教程(第二版)>学习指导 目录 图书简况 学习指导 第一章 绪论 第二章 数据和表达式 第三章 使用类和对象 第四章 条件和循环 第五章 编写类 第六章 图形用 ...

  8. Python与Java容器总结

    Python与Java容器总结 Python数据容器(5类): 1.List(列表) 2.Tuple(元组) 3.Str(字符串) 数据容器的切片 4.Set(集合) 5.Dict(字典.映射) 数据 ...

  9. java容器都有哪些

    java容器有:ArrayList.LinkedList.Vector.HashSet.LinkedHashSet.TreeSet.LinkedHashMap.TreeMap.ConcurrentHa ...

  10. java 容器都有哪些?

    目录 18.java 容器都有哪些? 19.Collection 和 Collections 有什么区别? 20.List.Set.Map 之间的区别是什么? 21.HashMap 和 Hashtab ...

最新文章

  1. Codeforces 771C
  2. Hibernate悲观锁/乐观锁
  3. Xcode7在运行包含HTTP协议的程序时报错解决方法 App Transport Security has blocked a cleartext HTTP (http)...
  4. 有效括号 python_python 有效的括号的实现代码示例
  5. Java顶尖程序员需要看的书
  6. mysql 5.7 差异备份_MySQL 5.7 新备份工具mysqlpump 使用说明 - 运维小结
  7. 第三章 MongoDb Java应用 3.1
  8. setlength java_Java StringBuilder setLength()方法与示例
  9. Ubuntu MySQL性能_入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能
  10. python 数据比对 函数_用python比对csv文件中的数据
  11. excel服务器数据同步修改,勤哲Excel服务器同步解决海量数据快速上传问题
  12. Xen的调度分析 (五) ——关于RTDS调度算法简介
  13. python中断言方法举例说明_Python中断言Assertion的一些改进方案
  14. 2019年那些成年人的崩溃瞬间,看着看着就哭了
  15. android前台服务也被杀,android如何让后台服务service不被杀死(设置前台服务)
  16. android 面包屑控件,android面包屑導航欄的實現
  17. 以图搜图-自动生成图模式匹配Cypher
  18. requests爬虫实践之虎扑步行街主干道帖子数据并保存为txt文件(python实现)
  19. 怎么在CAD三维图面上添加一长段说明文字?
  20. 荣耀8怎样修改wifi服务器,手机怎么设置荣耀路由器wifi密码?

热门文章

  1. 中国工程院院士郑纬民:应鼓励从头研发先进的存储系统软件
  2. 面向生态合作伙伴的实践分享回顾
  3. 如何解决大规模高性能存储可靠性问题?
  4. 3月21日阿里云北京峰会的注册二维码
  5. 【TWVRP】基于matlab蚁群算法求解带时间窗的多中心车辆路径规划问题【含Matlab源码 112期】
  6. c语言设计四路彩灯显示系统,数字电路逻辑设计课程设计-四路彩灯显示系统设计...
  7. ai疾病风险因素识别_克服AI的“蠕动因素”
  8. 心公正白壁无瑕什么意思?_人工智能可以编写无瑕的代码后,编码会变得无用吗?
  9. nlu 意图识别_在NLU中,您无视危险的意图
  10. 机器学习库线性回归代码_PyCaret回归:更好的机器学习库