1.Java集合基本概念

在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量,因为数组长度在初始化时指定,意味着只能保存定长的数据。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了。

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

2.Java集合关系介绍

Java可以划分3个部分:Collection(List、Set)、Map、和集合工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)

1. Collection是一个集合,包含了集合的基本操作方法和属性,它包含List和Set两大分支:

(01)List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。它的实现类有LinkedList, ArrayList, Vector, Stack。

(02)Set是一个不允许有重复元素的集合。它的实现类有HastSet和TreeSet。HashSet依赖于HashMap,它实际上是通过HashMap实现的;TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。

2.  Map是一个映射接口,即key-value键值对。Map中的每一个元素包含“一个key”和“key对应的value”。

AbstractMap是个抽象类,它实现了Map接口中的大部分API。而HashMap,TreeMap,WeakHashMap都是继承于AbstractMap。

Hashtable虽然继承于Dictionary,但它实现了Map接口。

3. Iterator是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。我们说Collection依赖于Iterator,是因为Collection的实现类都要实现iterator()函数,返回一个Iterator对象,实现这个Iterable接口的对象允许使用foreach进行遍历,也就是说,所有的Collection集合对象都具有"foreach可遍历性"。而ListIterator是专门为遍历List而存在的。

4. Enumeration是JDK 1.0引入的抽象类。作用和Iterator一样,也是遍历集合;但是Enumeration的功能要比Iterator少。在上面的框图中,Enumeration只能在Hashtable, Vector, Stack中使用。

5.Arrays和Collections是操作数组、集合的两个工具类。

参考:

java集合系列_Java集合系列01-Java集合概述相关推荐

  1. java futher多线程_Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap

    概要 本章对Java.util.concurrent包中的ConcurrentSkipListMap类进行详细的介绍.内容包括: ConcurrentSkipListMap介绍 ConcurrentS ...

  2. java代码讲解_Java基础系列-代码块详解

    注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 前言 Java基础系列,尽量采用通俗易懂.循序渐进的方式,让大家真正理解Java基础知识! 代码块 ...

  3. java comparable接口_Java面试题之Java集合篇三

    Java面试题之Java集合篇三1.HashMap和HashTable有何不同? (1)HashMap允许key和value为null,而HashTable不允许. (2)HashTable是同步的, ...

  4. java arraylist用法_Java入门系列:实例讲解ArrayList用法

    本文通过实例讲解Java中如何使用ArrayList类. Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征.可以随时从链表中添 ...

  5. java中单根_java之 单根继承与集合

    1.单根继承 概念: 单根继承,意味着所有类的继承,都继承自单一的基类的继承模式 优点: (1)所有对象都具有一个共用接口,归根到底都是相同的基本类型. (1)所有对象都具有一个共用接口,归根到底都是 ...

  6. java 集合数据类型_Java基础知识(数据类型和集合)

    一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...

  7. java nio多路复用_Java NIO系列教程(六) 多路复用器Selector

    多路复用器Selector是Java NIO编程的基础,熟练地掌握Selector对于掌握NIO编程至关重要.多路复用器提供选择已经就绪的任务的能力.简单来讲,Selector会不断地轮询注册在其上的 ...

  8. java api 框架_java常用对象API之集合框架

    说到集合框架,其实刚开始学的时候有点自我感觉很简单,自己认为就是集合类中的框架之类的,但是当自己简单把它过了一变后发现懵里懵懂的,什么都没懂,于是自己又认认真真的看了一遍,才弄明白. 说到集合框架就不 ...

  9. java display.getdefault()_java基础(十一 )-----反射——Java高级开发必须懂的

    本文我们通过一个实际的例子来演示反射在编程中的应用,可能之前大家对反射的学习,仅仅是停留在概念层面,不知道反射究竟应用在哪,所以是一头雾水.相信通过这篇教程,会让你对反射有一个更深层次的认知. 概念 ...

  10. collection集合 地址_java.util包下的集合

    Java 集合可分为 Collection 和 Map 两种体系 1.Collection接口:单列数据,定义了存取一组对象的方法的集合 List:元素有序.可重复的集合 Set:元素无序.不可重复的 ...

最新文章

  1. 谷歌学术公布2021年最有影响力工作,CV顶会论文“夹缝求生”!凯明 YYDS!
  2. Javascript中字符串转数字
  3. k8s之wsl2+kind+docker desktop搭建kubevela测试集群
  4. 百度代码规范 -- PHP
  5. 函数创建对象(2)原型模式
  6. matlab批量生成灰度图像_科学网—matlab彩色图像的批处理转换为灰度、二值和主成分图图像 - 金秀良的博文...
  7. python的回收机制_Python垃圾回收机制【人生苦短,我用python】-阿里云开发者社区...
  8. 使用ftp上传文件到Unix系统注意事项
  9. mysql 查询数据库名是否存在_SQL查询数据库是否存在
  10. gssapiauthentication
  11. 竞价实例-让ESS省上加省
  12. 大学最应该学习的 5 门课, 毕业后大厂 Offer 直接拿到手软!
  13. 《Android框架揭秘》——2.3节搭建Android SDK开发环境
  14. protues打不开问题
  15. linux获取utc时间函数,Linux下的时间函数
  16. iOS 不能播放远程视频(Android 可以)的问题
  17. AndroidStudio Launching ‘app‘ Time out 错误
  18. springboot初次使用template可能遇到的问题
  19. iOS常见面试题总结
  20. SQL CheatSheet Joins

热门文章

  1. Kubernetes 和 Docker,到底什么关系?
  2. Facebook陷入史上最大危机;华为5G设备欧洲大卖,美国指责欧盟;红帽宣布OpenShift可用于AWS中国……...
  3. Facebook 约十亿美元收购脑机技术公司,助攻AR研发;苹果宣布新款 Mac Pro 在美国生产;谷歌称已实现量子霸权…...
  4. brew安装指定版本mysql,Mac 系统为 Valet 开发环境安装指定版本 MySQL
  5. nacos 开启权限验证后 报错状态 403
  6. 集合判断哪非空 、2个集合取交集/并集/差集
  7. MybatisPlus_进阶
  8. Dubbo Zookeeper Quick Start
  9. 第六篇:Spring Boot 访问静态资源
  10. 把字符串按照某几个字符切割成数组