Java集合框架支持两种类型容器:

  • 一种是为了存储一个元素的合集,为Collection
  • 一种是为了存储键/值对,为Mapping

Collection包含

  • Set存储不重复的元素
  • List存储一个有序元素合集
  • Stack存储采用后进先出方式处理的对象
  • Queue存储采用先进先出方式处理的对象
  • Priority Queue存储优先级顺序处理的对象

Collection接口是一切合集的根接口,它继承了Iterable接口生成一个Iterator对象用于遍历元素,它为这些合集定义了通用的操作

Collection接口的方法

  • add(E):boolean
  • addAll(Collection<? extends E>):boolean
  • clear():void
  • contains(Object):boolean
  • containsAll(Collection<?>):boolean
  • equals(Object):boolean
  • hashCode():int
  • isEmpty():boolean
  • iterator():Iterator
  • remove(Object):boolean
  • removeAll(Collection<?>):boolean
  • removeIf(Predicate<? super E>):boolean
  • retainAll(Collection<?>):boolean
  • size():int

AbstractCollection抽象类提供了Collect接口的部分实现

  • boolean isEmpty()
  • boolean contains(Object)
  • Object[] toArray()
  • boolean remove(Object)
  • boolean containsAll(Collection<?>)
  • boolean addAll(Collection<? extends E>)
  • boolean removeAll(Collection<?>)
  • void clear()

List存储一个有序元素合集


Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象


Queue是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作


Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值

Map接口中的方法

  • clear():void
  • containsKey(Object):boolean
  • containsValue(Object):boolean
  • entrySet():Set<Map.Entry<K, V>>
  • equals(Object):boolean
  • get(Object):V
  • getOrDefault(Object, V):V
  • hashCode():int
  • isEmpty():boolean
  • keySet():Set
  • put(K, V):V
  • putAll(Map<? extends K, ? extends V>):void
  • remove(Object):V
  • remove(Object, Object):boolean
  • replace(K, V):V
  • replace(K, V, V):boolean
  • replaceAll(BiFunction<? super K, ? super V, ? extends V>):void
  • size():int
  • values():Collection

AbstractMap是抽象类,实现了entrySet()之外的所有方法

干了这杯Java之集合概览的更多相关文章

  1. 干了这杯Java之LinkedList

    LinkedList和ArrayList一样实现了List接口 ArrayList内部为数组 LinkedList内外为双向链表 实现了Deque接口,双端列队的实现 图片来自Wiki 内部实现为No ...

  2. 干了这杯Java之Vector

    Vector实现了AbstractList抽象类和List接口,和ArrayList一样是基于Array存储的 Vector 是线程安全的,在大多数方法上存在synchronized关键字 //Vec ...

  3. 干了这杯java之ThreadLocal

    ThreadLocal Java篇 是什么 怎么用 源码 缺点 总结 是什么 ThreadLocal是一个关于创建线程局部变量的类,这个变量只能当前线程使用,其他线程不可用. ThreadLocal提 ...

  4. 干了这杯Java,让你的Idea比eclipse好用

    1.Idea基本配置 1.1 Idea简介 Idea是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量.简单的说,Idea是写代码用的工具. ...

  5. 干了这杯Java之ArrayList

    List存储一个有序元素合集 List接口的实现类有: ArrayList,LinkedList,Vector,Stack ArrayList一个数组型的List 默认容量为10 private st ...

  6. 干了这杯Java之HashMap

    类: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneab ...

  7. 干了这杯Java之transient关键字

    看源码的时候,发现transient这个关键字,不甚理解,查找资料发现:不被序列化 疑问: 静态变量是不是不被序列化? public class User implements Serializabl ...

  8. C#与C++、Java之比较概览

    转自C#与C++.Java之比较概览 C#与C++.Java之比较概览 Ben Albahari 著  荣耀 译 本文翻译时间较早.欢迎指出任何误失.谢谢. 感谢以下人士的支持和反馈(按字母先后顺序) ...

  9. 【Java】集合_学习笔记

    一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...

随机推荐

  1. 迭代DOM集合的几种方法

    1.  Array.prototype.slice.call()    转数组再遍历 var a= document.querySelectorAll('div'); var arr = Array. ...

  2. SQL反模式学习笔记9 元数据分裂

    目标:支持可扩展性.优化数据库的结构来提升查询的性能以及支持表的平滑扩展. 反模式:克隆表与克隆列 1.将一张很长的表拆分成多张较小的表,使用表中某一个特定的数据字段来给这些拆分出来的表命名. 2.将 ...

  3. 1002-谈谈ELK日志分析平台的性能优化理念

    在生产环境中,我们为了更好的服务于业务,通常会通过优化的手段来实现服务对外的性能最大化,节省系统性能开支:关注我的朋友们都知道,前段时间一直在搞ELK,同时也记录在了个人的博客篇章中,从部署到各个服务 ...

  4. 咸鱼入门到放弃5--Session和Cookie

    保存会话数据的两种技术 1.Cookie Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去. ...

  5. servlet(一):Servlet的概念和运行流程

    概念: 狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指 任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者. Servl ...

  6. yum clear all无反应

    卸载重装yum 操作系统版本:centos7 [root@linux-node3 ~]# uname -r 3.10.0-514.el7.x86_64 一.将现有的yum源卸载 [root@linux ...

  7. Pycharm 2018.2.1最新版破解到2099年图解教程

    我破解后的效果图 安装我就不说了 工具解压在随便一个目录(文末有下载百度网盘链接)在 Pycharm安装目录的\bin目录下找到 pycharm.exe.vmoptions 和 pycharm64.e ...

  8. BZOJ.4009.[HNOI2015]接水果(整体二分 扫描线)

    LOJ BZOJ 洛谷 又是一个三OJ rank1!=w= \(Description\) (还是感觉,为啥非要出那种题目背景啊=-=直接说不好么) 给定一棵树和一个路径集合(每条路径有一个权值).\ ...

  9. Docker操作笔记(一)使用镜像

    使用镜像 一)获取镜像 从Docker镜像仓库获取命令的格式是: docker pull [选项] [Docker Registry 地址[:端口号]] 仓库名[:标签] 具体的选项可以通过docke ...

  10. Ubuntu安装并使用sogou输入法

    1.下载搜狗输入法的安装包 下载地址为:http://pinyin.sogou.com/linux/ ,如下图,要选择与自己系统位数一致的安装包,我的系统是64位,所以我下载64位的安装包 2.按键C ...