JavaSE——集合、集合继承结构图

一、集合概述

  1. 数组其实就是一个集合,集合实际上就是一个容器,可以来容纳其他类型的数据;
  2. 集合是一个容器,是一个载体,可以一次性容纳多个对象;
  3. 集合不能直接存储基本数据类型,另外集合也不能直接存储java对象;
  4. 集合中存储的都是java对象的内存地址(或者说集合中存储的是音容);
  5. 集合是一个对象,也有一个内存地址
  6. 集合在java.util.*包下

我们使用list.add(100)的时候,添加的并不是int类型,而是Integer类型,自动装箱了

1.1 集合我们常常会使用在什么地方?

比如我们连接数据库的时候,我们需要从数据库查询几百条的数据,此时我们就可以使用集合来进行接收者几百条的数据(这几百条的数据会被封装成java对象),然后统一返回到前端的页面,然后就会将数据展现出来

1.2 集合底层数据结构

在java中每一个一个不同的集合,底层会对应不同的数据结构,往不同的集合中存储元素,等于将数据存放到了不同的数据结构中。

不同的数据结构,数据的存储方式不同,例如:数组。二叉树、链表、图.....都是常见的数据结构

使用不用的集合,等同于使用了不同的数据结构

1.3 集合的分类

在java中集合分为两大类:

    单个方式存储元素

超级父接口:java.util.Collection

    键值对的方式存储元素

超级父接口:java.util.Map

1.4 Collection集合的继承结构(重要)

1.4.1 List接口继承图

1.4.2 Set接口继承图

我们可以从下图得知,当我们使用HashSet集合添加元素的时候,其实底层是调用的map集合进行的,这就印证了我们上面说的向HashSet集合中存储元素,实际上是存储到HashMap集合中了

1.4.3 Collection集合继承结构图总结

以后的开发我们常用的是下面的几种,但是不局限于这几种

SortedSet集合存储元素的特点:

由于继承了Set集合,所以他的特点也是无序不可重复的

但是放在SortedSet集合中的元素可以自动排序(可排序集合,自动按照大小顺序排序)

有序:存进去的东西和取出来的东西不乱,怎么存的就怎么取出来

无序刚好相反,一定要理解好有序和无序的概念,否则会和自动排序混淆

1.5 Map集合继承图

    Map集合与Collection集合没有关系,单独的一个继承体系 以key、value这种键值对的方式存储元素 key和value都是存储java对象的内存地址 所有Map集合的key特点:无序不可重复 (和Set集合存储元素特点相同) Map集合的key,就是一个Set集合 向HashSet集合中存储元素,实际上是存储到HashMap集合中了 向TreeSet集合中存储元素,实际上是存储到TreeMap集合中了

1.6 总结

List集合存储元素特点:

    有序可重复 有序:存进去的顺序和取出来的顺序相同,每一个元素都有下标 可重复:存进去1,可以再存储一个1

Set(Map)集合存储元素的特点:

    无序不可重复 无序:存进去的顺序和取出来的顺序不一定相同,Set集合中每一个元素都没有下标 不可重复:存进去1,就不能再存储1了

SortedSet(SortedMap)集合存储元素的特点:

    无序不可重复 无序:存进去的顺序和取出来的顺序不一定相同,Set集合中每一个元素都没有下标 不可重复:存进去1,就不能再存储1了 可排序:可以按照大小排序

Map集合的key,就是一个Set集合:

往Set集合中存放数据,实际上存放到了Map集合的key部分了

经验分享 程序员 微信小程序 职场和发展