zoukankan      html  css  js  c++  java
  • Collection集合

    1.集合概述

    集合是Java中提供的一种容器,可以用来存储多个数据。

    集合和数组既然都是容器,它们有啥区别?

    • 数组的长度是固定的。集合的长度是可变的。
    • 数组中存储的是同一类型的元素,可以存储基本数据类型值,可以存储对象。集合只能存储对象,而且对象类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储。

    集合类存放在java.util包中。主要的类型一共有四种:List(列表)、Set(集)、Queue(队列)、Map(映射)。其中主要有两大接口,分别是Collection和Map。其中List、Set、Queue实现了Collection接口。

    这张图可以说非常经典了。

    Tips:实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口。带有空心箭头的点线表示一个特定的类实现了一个接口,实心箭头表示某个类可以生成箭头所指向类的对象。比如,Collection可以生成Iterator。

    图中标粗的类(HashSet、ArrayList、LinkedList、HashMap)是比较常用的集合。

    首先在搞清楚常用集合之前,先说说有关集合的基本概念。

    前面我们说到,在程序运行过程中,对于不确定数量、不确定类型的对象的存储,我们可以用集合来解决。也就是说,我们可以通过用这些集合,来方便的存储我们想要的对象。当然了,集合对对象的存储,并不是真正把对象塞到容器里来。

    根据两大集合接口Collection和Map,我们可以把集合也分为两种不同的概念来探讨。

    (1)Collection

    它是一个序列,可以想象学校里学生们站排这个场景。每个学生就是一个对象,这个排就是一个Collection集合。不同的实现类,对于它所存储的对象的规则要求也不同。List、Queue须按照插入的顺序存储元素,而Set则不能有重复元素。这里简单说一下Queue,它实际上是对队列这种数据结构的一种实现,典型特性就是先进先出(FIFO)。Queue接口提供了offer(Object e)、peek()、poll()等方法对有关队列概念的操作进行实现。

     

    (2)Map

    它是一组成对的“键值对”对象,可以通过键来查找值。这就像班级的座位表,任课老师来班级上课,通过座位表上“第三排第五座”就能找到对应的学生“马叨叨”。最神奇的是,我们不光可以用类似“第三排第五座”这样的文字(String)来寻找值,我们也可用通过对象来寻找值。也就是说,Map中的键值都可以是对象。我们称这种对应关系为“映射表”。

  • 相关阅读:
    golang 数据结构 优先队列(堆)
    leetcode刷题笔记5210题 球会落何处
    leetcode刷题笔记5638题 吃苹果的最大数目
    leetcode刷题笔记5637题 判断字符串的两半是否相似
    剑指 Offer 28. 对称的二叉树
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 26. 树的子结构
    剑指 Offer 25. 合并两个排序的链表
    剑指 Offer 24. 反转链表
    剑指 Offer 22. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/GumpYan/p/13813869.html
Copyright © 2011-2022 走看看