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. Java设计模式迭代器

    定义:提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示. 类型:行为型 适用场景: 访问一个集合对象的内容而无需暴露它的内部表示 为遍历不同的集合结构提供一个统一的接口 优点 ...

  2. Redis数据类型Hash

    Redis的Hash有点像一个对象(object),一个Hash里面可以存多个Key-Value对作为它的field,所以它通常可以用来表示对象.Hash里面能存放的值也能作为String类型来存储, ...

  3. influxDB+grafana安装配置及邮件告警发送配置

    1. InfluxDB安装 下载包并解压: $:wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.3.6_linux_amd64.t ...

  4. Node.js API 学习笔记

    常用 API 学习笔记 url 函数 url.parse: 解析 url 地址 url.resolve: 向 url 地址添加或替换字段 url.format: 生成 url 地址 querystri ...

  5. 【Android】PreferenceActivity 详解

    PreferenceActivity是专业的设置界面,只要给它指定一个配置好的xml,它就能自动根据操作更改程序Preference的相应值. 首先要用一个xml文件来配置一个设置界面,也就是我们说的 ...

  6. nginx+apache动静分离/负载均衡

    [主从] [Mysql-Master] log-bin=mysql-bin server-id = MariaDB [(none)]> grant replication slave on *. ...

  7. 移动端1px边框实现

    问题描述:移动端iPhone上的1px边框看起来像2px那么粗.问题分析:不同的手机有不同的像素密度,在window对象中有一个devicePixelRatio属性,它可以反应设备的像素与css中的像 ...

  8. vscode断点调试本地客户端文件

    一.安装chrome,安装vscode,打开vscode编辑器,安装插件Debugger for Chrome 二.新建文件 1.目录结构 . ├── index.html ├── index.js ...

  9. 2017-10-22—发光二极管

    LED与 LD的差别在工作原理上的差别:LED是利用注入有源区的载流子自发辐射复合发光,而LD是受激辐射复合发光.在结构上的差别:LD有光学谐振腔,使产生的光子在腔内振荡放大,LED没有谐振腔.性能上 ...

  10. CSS3 box-sizing的作用

    设置CSS盒模型为标准模型或IE模型.标准模型的宽度只包括content,二IE模型包括border和padding box-sizing属性可以为三个值之一: content-box,默认值,bor ...