1、概述: @white

Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)“丢进”该容器中。

2、Java集合大致可以分4类: @white

Set:代表无序、不可重复的集合;

List:代表有序、重复的集合;

Map:代表具有映射关系的集合

Queue:代表一种队列集合实现;(Java 5增加)

3、Java集合和数组的区别 @white

1、长度:

数组:只能保存定长的数据,长度在初始化时指定;

集合:可保存数量不确定的数据。

2、保存数据类型:

数组:基本类型和对象。

集合:只能保存对象(实际保存对象的引用变量),基本数据类型变量需转换为对应的包装类才能放入集合类中。

4、接口和类图说明: @white

4.1 整体说明:

这个主要是看类图,如果你结合类图,仔细看过源码,那么这些理解都不是问题。因为你只是看教程,缺少第一手资料,缺少细节,反而总是更加不理解。

4.2 类图:

https://upload-images.jianshu.io/upload_images/2993097-d92fdc13030b2126.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/650

图片来源:Java集合框架学习-----Collection接口概述 - 简书 https://www.jianshu.com/p/b878a4e1c762

4.3 类图图例使用说明:

接口:用虚线框表示:

类:用实线框表示;

接口和接口之间的实现:用虚线和空白三角表示;

类与类之间,以及类与接口之间的实现:用实现线和空白三角

produce关系-即之间有关系,但并非直接实现:虚线和实心三角

4.4 Collection接口:主要包含如下子接口

Set 接口:

List 接口:

Queue接口:(队列:先进先出)

4.5 Map接口和Collection接口的关系:(之间没有实际继承关系,只是)

1、虽然总是将Map和List 以及Set 一起说,但实际上Map和List 以及Set并不是同级关系。List 和Set是Collection的子接口;Map并不是,Map并不属于Collection接口系列。

2、Map和Collection的关系在于Map的实现上。因为Map的所有key实际是一个Set对象,Map的所有value也是一个Collection接口对象。(可看Map接口源码)

3、其他,并没有太多关系。

5、各个接口特性说明以及常用实现类: @white

5.1 Set 接口: @white

5.1.1 特性说明:

元素不允许重复,无序

5.1.2 常用实现类:

HashSet:

LinkedHashSet

TreeSet

EnumSet

5.2 List 接口: @white

5.2.2 特性说明:

有序

5.2.2 常用实现类:

ArrayList:

LinkedList:

Vector

Stack

5.3 Queue接口: @white

5.3.2 特性说明:

队列:先进先出

5.3.2 常用实现类:

PriorityQueue

Deque(子接口)

ArrayDeque

5.4 Map接口 @white

5.4.1 特性说明:

保存具有映射关系的数据;

key和value都可以是任何引用类型的数据。

Map的key不允许重复(任何两个key比较总是返回false)

实质:所有key是一个Set集合,所有value几乎是一个List集合

5.4.2 常用实现类:

HashTable

HashMap:

LinkedHashMap

TreeMap:

6、其他相关接口说明: @white

6.1 Iterator接口

6.1.1 概念:

被称作迭代器,是Collection接口的父接口。

主要用于遍历Collection集合中的元素。

6.1.2 主要注意:

修改迭代变量的值对集合元素本身没有任何影响。

6.1.2.1 原因:

使用Iterator对集合元素进行迭代时;

Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传给了迭代变量(就如同参数传递是值传递,基本数据类型传递的是值,引用类型传递的仅仅是对象的引用变量)

所以除非实际修改该对象指向的内容,否则不会对集合产生影响。

6.1.2.2 原因分析和详解:

具体可以参考:由浅入深理解java集合(一)——集合框架 Collection、Map - 简书 https://www.jianshu.com/p/589d58033841

7、参考: @white

本文参考:由浅入深理解java集合(一)——集合框架 Collection、Map - 简书 https://www.jianshu.com/p/589d58033841(这个系列的所有文章)

理解java集合——集合框架 Collection、Map的更多相关文章

  1. 深入理解Java中的Garbage Collection

    前提 最近由于系统业务量比较大,从生产的GC日志(结合Pinpoint)来看,需要对部分系统进行GC调优.但是鉴于以往不是专门做这一块,但是一直都有零散的积累,这里做一个相对全面的总结.本文只针对Ho ...

  2. Java容器类接口:Iterator,Collection,Map

    Iterator Iterator被称为迭代器,是一个对象,它的工作是遍历并选择序列中的对象,可以实现以下一些操作: 使用方法iterator()要求容器返回一个Iterator,Iterator将返 ...

  3. 深入理解java:4. 框架编程

    了解 Servlet 和 Filter Servlet(即servlet-api.jar) 是 J2EE 最重要的一部分,有了 Servlet 你就是 J2EE 了,J2EE 的其他方面的内容择需采用 ...

  4. Scala中集合类型与java中集合类型转换

    对于java中的集合元素并不能在scala中拿来就用的,需要进行相应的转换. 1. 转换规则如下 从下面可以看出,有些可以相互转换的,有些只能单向转换: scala.collection.Iterab ...

  5. 我所理解Java集合框架的部分的使用(Collection和Map)

    所谓集合,就是和数组类似——一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接 ...

  6. 【由浅入深理解java集合】(一)——集合框架 Collction、Map

    本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. ...

  7. 自顶向下理解Java集合框架(三)Map接口

    Map基本概念 数据结构中Map是一种重要的形式.Map接口定义的是查询表,或称查找表,其用于储存所谓的键/值对(key-value pair),其中key是映射表的索引. JDK结构中还存在实现Ma ...

  8. java的集合框架set 和map的深入理解

    Java的集合框架之Map的用法详解 Map有两种比较常用的实现:HashMap 和 TreeMap. HashMap: HashMap 也是无序的,也是按照哈希编码来排序的,允许使用null 值和n ...

  9. Java 集合深入理解(3):Collection

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情有点粉,来学学 Collection 吧! 什么是集合? 集合,或者叫容器,是一个包含多个元素的对象: 集合可以对 ...

随机推荐

  1. C#指南,重温基础,展望远方!(6)C#类和对象

    类是最基本的 C# 类型. 类是一种数据结构,可在一个单元中就将状态(字段)和操作(方法和其他函数成员)结合起来. 类为动态创建的类实例(亦称为“对象”)提供了定义. 类支持继承和多形性,即派生类可以 ...

  2. Ajax高级应用---Comet

    非常适合处理体育比赛的分数和股票报价 1.HTTP流 将输出缓存中的内容一次性全部发送到客户端的功能是实现HTTP流的关键所在.

  3. Windows+Nginx+IIS做图片分布式存储详细步骤

    最近几天,一直在学习nginx在windows平台下的使用,为了寻找几种大量图片分布式存储而且有相对简单的存储方案 nginx是一种,还找到一种MongoDB GridFS 这两种方案我还是比较中意的 ...

  4. atitit.React   优缺点 相比angular react是最靠谱的web ui组件化方案了

    atitit.React   优缺点 相比angular react是最靠谱的web ui组件化方案了 1. React的组件化才是web ui部件的正确方向1 1.1. 组件化集成html ,css ...

  5. iOS 图片的属性

    UIViewContentModeScaleToFill UIViewContentModeScaleAspectFit UIViewContentModeScaleAspectFill UIView ...

  6. PHP命名空间规则解析及高级功能

    日前发布的PHP .3中,最重要的一个新特性就是命名空间的加入.本文介绍了PHP命名空间的一些术语,其解析规则,以及一些高级功能的应用,希望能够帮助读者在项目中真正使用命名空间. 在这里中我们介绍了P ...

  7. CCNA2.0笔记_路由相关

    路由器的工作内容 -路由器知道目标地址 -发现到达目标地址的可能的路由 -选择最佳路径(路由表) -维护路由信息 路由的来源 直连路由:直接连到路由器上的网络 -初始化情况下,路由器所知的网络,只有其 ...

  8. hdu 1213 (How Many Tables)(简单的并查集,纯模板)

    How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. Python Excel 导入导出【转】

    一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 import x ...

  10. java请求POST发送json格式请求

    public static String upload(String url){ try { HttpClient httpclient = new DefaultHttpClient(); Http ...