前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java集合框架一览笔录

Java集合框架一览笔录

作者头像
斯武丶风晴
发布2018-03-01 14:21:19
5520
发布2018-03-01 14:21:19
举报
文章被收录于专栏:龙首琴剑庐龙首琴剑庐

1、集合概念

集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。

集合分为两大类:Collection、Map。

Collection(集合),每个元素存储单个数据(Java基本数据类型或者对象),通常这些元素都服从某种规则

  1) List必须保持元素特定的顺序

  2) Set不能有重复元素

  3) Queue保持一个队列(先进先出)的顺序

Map(哈希),每个元素存储 "键值对"的 数据。

2、集合与数组的区别?

数组在初始化时候就必须指定数组长度,因此数组只能保存固定个数的元素。

集合在初始化时候一般可以不指定集合大小,因此集合可以保存不确定个数的元素。

另外,集合的元素,存储可以不仅是单个数据,还可以是 键值对 的数据。

3、集合类架构层次

Arrays和Collections是用来操作数组、集合的两个工具类,例如在ArrayList和Vector中大量调用了Arrays.Copyof()方法,而Collections中有很多静态方法可以返回各集合类的synchronized版本,即线程安全的集合实现,如果要用线程安全的结合类,首选java.util.concurrent并发包下的对应的集合类。

java.util.concurrent并发包提供了基本线程安全的各类容器。其中队列分为阻塞队列、非阻塞队列。

4、迭代器Iterator

通过Iterator,可以遍历任何Collection类集合,Map的键集合或者值集合。

迭代器允许调用者在迭代过程中移除元素。

使用迭代器更加线程安全,因为它可以确保,在当前遍历的集合元素被更改的时候,它会抛出ConcurrentModificationException。

什么是fail-fast

每次我们尝试获取下一个元素的时候,Iterator fail-fast属性检查当前集合结构里的任何改动。如果发现任何改动,它抛出ConcurrentModificationException。Collection中所有Iterator的实现都是按fail-fast来设计的。(并发容器则是fast-safe设计的)

fail-fast与fail-safe有什么区别?

Java.util包中的所有集合类都被设计为fail-fast的,而java.util.concurrent中的集合类都为fail-safe的。Fail-fast迭代器抛出ConcurrentModificationException,而fail-safe迭代器从不抛出ConcurrentModificationException。

更多请期待。(2017.9.19)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、集合概念
  • 2、集合与数组的区别?
  • 3、集合类架构层次
  • 4、迭代器Iterator
    • 什么是fail-fast
      • fail-fast与fail-safe有什么区别?
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档