首页 > 编程语言 > 详细

Java学习12-集合

时间:2021-05-23 23:05:43      阅读:21      评论:0      收藏:0      [点我收藏+]

1. 集合概述

1.1 什么是集合?有什么用?

数组就是一个集合。集合就是一个能够容纳其他数据的容器。

集合常在开发时使用:

集合是一个容器,一个载体,可以容纳多个对象。在实际开发中,假设连接一个数据库,数据库中有十条数据,假设查询十个数据,那么我们的java程序就会把这十个数据封装进十个java对象,放到某个集合中,然后把集合发送到前端,遍历集合,将数据一个一个显示出来。

1.2 集合具体能存储什么?

集合不能直接存储基本数据类型,也不能直接存储java对象,集合存储的是java对象的内存地址(引用)。

list.add(10); // 自动装箱Integer

注意:

  • 集合本身也是一个对象

  • 集合在任何时候存储的都是内存地址(引用);

  技术分享图片

1.3 集合底层对应的数据结构

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

常见的数据结构有 数组、链表、二叉树、hashMap、图等。

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

在java中,数据结构已经实现了,已经写好了常用的集合类,我们只需要知道在什么情况下选择使用哪一个集合即可。

new LinkedList(); 创建了一个集合对象,底层是链表

new ArrayList();创建了一个集合对象,底层是数组

1.4 集合在Java JDK中哪个包下?

java.util.*;

所有的集合类和集合接口都在java.util包下

1.5 集合继承图

在Java中集合分为两大类:

技术分享图片

  1. 单个方式存储元素:超级父接口:java.util.Collection;

Collection集合继承脑图:

技术分享图片

  1. 以键值对的方式存储元素:超级父接口:java.util.Map;

Map集合继承脑图:

技术分享图片

 

1.6 总结

1.6.1 Collection:

1) List:有序可重复
  1. 有序:存入和取出的顺序相同,每一个元素都有下标

  2. 可重复:存入一个张三,还可以再存入一个张三

  3. 实现类:

    • ArrayList: 底层是数组,线程不安全

    • Linkedlist: 底层是双向链表

    • Vector: 底层是数组,线程安全,效率较低,使用较少

2) Set:无序不可重复
特点:
  1. 无序:存入和取出的顺序不一定相同,Set元素都没有下标

  2. 不可重复:不能存两个张三

  3. 实现类:

    • HashSet: 底层是HashMap,放到HashSet集合中的元素实际上都会进入HashMap的key部分

    • TreeSet: 底层是TreeMap,放到TreeSet集合中的元素实际上都会进入TreeMap的key部分

3) SortedSet(SortedMap):

无序不可重复,但SortedSet集合中的元素是可排序的

  1. 无序:存入和取出的顺序不一定相同,Set元素都没有下标

  2. 不可重复:不能存两个张三

  3. 可排序:可以按照大小顺序排序

1.6.2 Map:

Map中的key就是一个Set集合,往Set集合中存放数据,实际放到了Map集合中的key部分

  • HashMap: 底层是哈希表

  • Hashtable: 底层是哈希表,线程安全,效率较低,使用较少

    • Properties: 继承自Hashtable线程安全,key和value只能存放String类型

SortedMap(SortedSet):

无序不可重复,但SortedSet集合中的元素是可排序的

  1. 无序:存入和取出的顺序不一定相同,Set元素都没有下标

  2. 不可重复:不能存两个张三

  3. 可排序:可以按照大小顺序排序

    • TreeMap: 底层是二叉树,TreeMap集合中的key可以按大小自动排序

Java学习12-集合

原文:https://www.cnblogs.com/TSCCG/p/14802183.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!