IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Java 集合 Collection -> 正文阅读

[数据结构与算法]Java 集合 Collection

1、集合概述

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

数组本身就是一个集合,集合实际上就是一个容器,可以对数据进行进行容纳;

集合在开发中为什么使用的次数比较多?
集合实际上一个载体,可以一次容纳多个对象;
实际开发中,比如在浏览器上展示十条数据,会在数据库中获取到 10 条数据,查询结束后,通过容器放到浏览器上面进行显示操作;

数据的封装过程:数据封装成为 10 个对象之后,然后将 10 个对象放到某一个集合中间去,将集合传递到前端,然后遍历集合,然后将数据展示出来;

1.2 集合中不能直接存储基本数据类型,另外集合也不能直接存储 Java 对象,集合中存储的是Java对象 的内存地址(集合中存储的是引用,重要)

注意:集合在Java中本身是一个容器,是一个对象,集合中任何时候存储的都是一个引用;

1.3 在Java 中的每一个不同的集合,底层对应的不同的数据结构,向不同的集合中存储元素,等于将数据放置到不同的数据结构当中

什么是数据结构?
数据存储的结构就是数据结构,不同的数据结构,存储的方式是不同的,比如:

  • 数组
  • 二叉树
  • 链表
  • 哈希表

上面都是常见的数据结构;
使用了不同的集合相当于使用了不同的数据结构;

Java中常用的数据结构已经实现,需要掌握怎么使用即可,在什么情况下选择什么样的数据结构;
new 不同的对象,就是不同的数据结构,直接调用相关的方法即可;

1.4 集合在Java中的什么包中?

处于 JDK 中的位置:
java.util.*

1.5 集合的继承结构图熟记,可以快速开发

集合的整个体系是什么样的?
使用了 UML 进行描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.6 Java 中集合的分类

单个方式存储元素java.util.Collection

使用键值对的方式进行存储 java.util.Map

所有的集合因为继承了Iterable 的含义是:所有的集合都是可以迭代的;

1.7 在集合中的额部分实现类

  • ArrayList
    底层是数组
  • LinkedList
    底层是双向链表
  • Vector
    底层是数组,线程安全,但是使用的比较少
  • HashSet
    底层是 HashMap,放到 HashSet 集合中元素,相当于放到 HashMap 集合 key 元素
  • TreeSet
    底层是 TreeMap 放到 TreeSet 中的元素等同于放到 TreeMap 集合 key 部分
  • HashMap
    底层是哈希表
  • Hashtable
    底层是哈希表,线程安全,效率较低,使用的较少
  • Properties
    线程安全,只能 key value 只能存储字符串 String
  • TreeMap
    底层是二叉树,TreeMap 集合的 key 可以自动按照大小进行排序

1.8 List Set Sorted 比较

List 存储元素的特点:
有顺序可以重复,存进去的顺序,取出来的顺序相同

Set 存储元素的特点:
无序,不可重复,存进去的顺序和取出来的顺序是同的,不一定相同;
存入了 1 ,不能继续存储 1 了;

SortedSet 存储元素的特点:
无顺序,不可以重复的,但是 SortedSet 中的元素是可以排序的;
可排序:可以按照大小进行排序;

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

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章           查看所有文章
加:2021-09-28 00:12:11  更:2021-09-28 00:12:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 13:47:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码