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. Centos查看系统CPU个数、核心数、线程数

    1.查看 CPU 物理个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看 CPU 核心数量 grep 'core id' /proc/ ...

  2. ubuntu的磁盘扩容

    前言:以前项目的人给ubuntu虚拟机分配磁盘空间走的默认,导致后期/根和swap空间跟不上需求,需要扩容 流程如下: 1.先添加块硬盘,命令行输入fdisk -l,会发现多了个/dev/sdb(vd ...

  3. cJSON源码分析

    JSON (JavaScript Object Notation) 是一种常见使用的轻量级的数据交换格式,既有利于人工读写,也方便于机器的解析和生成. 关于JSON格式的定义,参看网站[1].在该网站 ...

  4. spark DataFrame的创建几种方式和存储

    一. 从Spark2.0以上版本开始,Spark使用全新的SparkSession接口替代Spark1.6中的SQLContext及HiveContext接口来实现其对数据加载.转换.处理等功能.Sp ...

  5. IMCASH:看着朋友赚钱进币圈 我凭啥亏钱? 4月29日币圈报告

    即将过去的四月份,币圈的行情总体是不错的,比特从4000附近最高涨到了5600以上的位置,当前也在5200左右,而成交量更是创出历史天量(4月3日,全球加密货币市场的交易量达890亿美元,创历史天量) ...

  6. 通过 ContentResolver 读取联系人信息

    1.首先动态获取 读取联系人信息权限    <1>配置文件中声明对应权限 ) } ] == PackageManager.PERMISSION_GRANTED) { readContact ...

  7. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习2

    #include <iostream> #include <cctype> using namespace std; const int MAXSIZE=10; int mai ...

  8. base64编解码

    //ZBBase64.h #include <string> class ZBase64{public:    /* 编码    DataByte       [in]输入的数据长度,以字 ...

  9. asp.net MVC jsonp跨域获取数据

    public class JsonpResult : JsonResult { object _data = null; public JsonpResult() { } public JsonpRe ...

  10. CF_2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)

    只做了两个就去上课去啦... A. Company Merging time limit per test 1 second memory limit per test 512 megabytes i ...