2019独角兽企业重金招聘Python工程师标准>>>

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)

转载于:https://my.oschina.net/langxSpirit/blog/1539700

Java集合框架一览笔录相关推荐

  1. Java集合框架综述,这篇让你吃透!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:平凡希 cnblogs.com/xiaoxi/p/60899 ...

  2. 【Java集合框架】ArrayList类方法简明解析(举例说明)

    本文目录 1.API与Java集合框架 2.ArrayList类方法解析 2.1 add() 2.2 addAll() 2.3 clear() 2.4 clone() 2.5 contains() 2 ...

  3. Java集合框架的知识总结(1)

    Java集合框架的知识总结(1) 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量). Java的集合类主要由两个接口派生而出:Collection和Map,Collec ...

  4. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

  5. 【Java集合源码剖析】Java集合框架

    2019独角兽企业重金招聘Python工程师标准>>> Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集 ...

  6. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  7. java集合框架综述

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  8. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  9. Java集合框架系列教程三:Collection接口

    翻译自:The Collection Interface 一个集合表示一组对象.Collection接口被用来传递对象的集合,具有最强的通用性.例如,默认所有的集合实现都有一个构造器带有一个Colle ...

最新文章

  1. zookeeper启动失败排查
  2. php5.0 aes加解密,PHP的aes加解密算法
  3. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查...
  4. 【Python】 运算符
  5. 租用境外服务器开设网站,租用境外服务器对网站SEO有影响么?影响在那里?
  6. AndroidStudio安卓原生开发_UI高级_RecyclerView_循环复用控件_代替ListView_GridView---Android原生开发工作笔记121
  7. Spring Boot 之异步执行方法
  8. [WM C++]从资源文件中加载显示png/jpg图片
  9. [转载] Java——System.exit()用法及个人理解
  10. Basic INFO: InstallShield 2012安装过程
  11. dubbo学习笔记一(服务注册)
  12. c语言语法大全,oc语言基本语法汇总分析
  13. 大厂硬件技术二面的题目
  14. k8s问题记录与解决
  15. Qt发布版本退出时错误处理“The inferior stopped because it received a signal from the operating system.”
  16. 相思赋予谁 --知错
  17. Hyper-V搭建centos8
  18. 四则运算——结对项目报告
  19. 电脑技巧:进程管理工具Process Explorer介绍
  20. 用shell脚本实时查看网卡流量

热门文章

  1. 窄行打印纸打印机规格_电脑打印纸的尺寸和打印机纸张规格的设置
  2. oracle命令未正确结束_详解Oracle数据库终止正在进行expdp导出数据的正确操作
  3. c语言如何给阻塞函数加超时,在代码中写一个延时而不阻塞的函数方法,给大家的参考 - 单片机 - 电子工程世界-论坛 - 手机版...
  4. rancher添加私有仓库_CocoaPods搭建私有库
  5. 为什么用加权平均来降噪
  6. 【直播回放】2小时全面剖析图像分类任务,学习CV必知
  7. 全球及中国智能音箱市场规模产值及发展机遇研究报告2021-2027年
  8. Building COM Objects in C#
  9. 保持图片和图片框一致的方法 收藏
  10. openresty开发系列31--openresty执行流程