当前位置: 首页 > news >正文

初识集合框架 -Java

目录

一、集合框架的概念

二、集合框架的重要性

三、涉及的数据结构和算法

        3.1 什么是数据结构

        3.2 集合框架(容器)背后对应的数据结构

        3.3 相关的Java知识

        3.4 什么是算法

        3.5 如何学好数据结构和算法


一、集合框架的概念

        Java 集合框架,称为容器 ,是定义在 java.util 包下的一组接口和其实现类。
        主要表现为将多个元素 置于一个单元中,用于对这些元素进行快速、便捷的存储、检索  、管理 ,即平时我们所说的增删查改。
        

二、集合框架的重要性

        1. 减少编程工作量 :有了可重用和有用的数据结构和算法,程序员不必重新发明轮子,他们可以将时间用于开发应用程序业务。

        2. 提高程序速度和质量 :Java集合框架(Java Collections Framework)实现的具体集合是为高性能和高质量而构建的,因此程序员可以在程序中利用这一优势。

        3. 促进软件重用 :由于JDK内置了Java 集合框架,故使用集合框架编写的代码可以在应用程序、库和API中的任何地方重复使用。 这降低了开发成本并提高Java程序之间的互操作性。

三、涉及的数据结构和算法

        3.1 什么是数据结构

        数据结构是计算机存储、组织数据的方式,指相互之间存在的一种或多种特定关系的数据元素的集合。

        3.2 集合框架(容器)背后对应的数据结构

        现阶段主要学习以下的容器,每个容器都是对某种特定数据结构的封装。

        1. Collection:是一个接口,包含大部分容器常用方法。

        2. List:是一个接口,规范ArrayList和LinkList中要实现的方法。

                ArrayList:实现List接口,底层为动态类型顺序表。

                LinkList:实现List接口,底层为双向链表。

        3. Stack:底层是栈,一种特殊的顺序表。

        4. Queue:底层是队列,一种特殊的顺序表。

        5. Deque:是一个接口。

        6. Set:集合,是一个接口,里面放置K模型。

                HashSet:底层为哈希桶,查询的时间复杂度为O(1)。

                TreeSet:底层为红黑树,查询的时间复杂度为O($\log2^ N$),关于key有序。

        7. Map:映射,里面存储K-V模型的键值对

                HashMap:底层为哈希桶,查询的时间复杂度为O(1).

                TreeMap:底层为红黑树,查询的时间复杂度为($\log2^ N$),关于key有序。

        3.3 相关的Java知识

        1. 泛型Generic

        2. 自动装箱autobox和自动拆箱autounbox

        3. Object的equals方法

        4. Comparable和Comparator接口

        3.4 什么是算法

        算法是定义良好的计算过程,输入一个或一组值,输出一个或一组值。简单来说算法就是一系列计算步骤,输入数据通过算法转化为输出结果。

        3.5 如何学好数据结构和算法

        1. 死磕代码,即写一段代码出现问题,坚持找出问题所在。

        2. 多画图和思考

        3. 多谢博客总结

        4. 多刷题

相关文章:

初识集合框架 -Java

目录 一、集合框架的概念 二、集合框架的重要性 三、涉及的数据结构和算法 3.1 什么是数据结构 3.2 集合框架(容器)背后对应的数据结构 3.3 相关的Java知识 3.4 什么是算法 3.5 如何学好数据结构和算法 一、集合框架的概念 Java 集合框架,…...

目标检测笔记(十五): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)

文章目录 一、目标检测介绍二、YOLOX介绍三、源码获取四、环境搭建4.1 环境检测 五、数据集准备六、模型训练七、模型验证八、模型测试 一、目标检测介绍 目标检测(Object Detection)是计算机视觉领域的一项重要技术,旨在识别图像或视频中的…...

深眸科技自研轻辙视觉引擎,以AI机器视觉赋能杆号牌识别与分拣

电线杆号牌作为电力行业标识的一种,相当于电线杆的“身份证”,担负着宣传电力知识、安全警示的作用,用于户外使用标记输电线路电压等级、线路名称、杆塔编号等,能够清晰地记录电力线路杆的信息,并为电力线路的更改以及…...

Shell命令管理进程

Shell命令管理进程 列出进程 ps命令 top命令 管理后台进程 启动后台进程 查看后台进程 jobs和ps的区别 停止进程 Linux除了是一种多用户操作系统之外,还是一种多任务系统。多任务意味着可以同时运行多个程序。Linux 提供了相关的工具来列出运行中的进程,监视…...

python创建exe文件

1、搭建环境 pip install pyinstaller 2、准备测试代码 exe_test.py import timeprint("hello") print("hello") print("hello") print("hello")time.sleep(5) 注:添加sleep以便在执行exe文件的时候能看到结果 3、生…...

【数据结构】AVL树的插入与验证

文章目录 一、基本概念1.发展背景2.性质 二、实现原理①插入操作1.平衡因子1.1平衡因子的更新1.1.1树的高度变化1.1.2树的高度不变 2. 旋转2.1左旋2.2右旋2.3右左双旋2.4 左右双旋 ②验证1.求二叉树高度2. 判断是否为AVL树 源码总结 一、基本概念 1.发展背景 普通的二叉搜索树…...

9.3.3网络原理(网络层IP)

一.报文: 1.4位版本号:IPv4和IPv6(其它可能是实验室版本). 2.4位首部长度:和TCP一样,可变长,带选项,单位是4字节. 3.8位服务类型 4.16位总长度:IP报头 IP载荷 传输层是不知道载荷长度的,需要网络层来计算. IP报文 - IP报头 IP载荷 TCP报文 TCP载荷 IP载荷(TCP报文) …...

代码随想录算法训练营第四十八天| LeetCode121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III

121. 买卖股票的最佳时机 题目描述: 121. 买卖股票的最佳时机. 解法 dp class Solution(object):def maxProfit(self, prices):if not prices:return 0dp0 0# 0表示不持有股票,1表示持有股票dp1 0-prices[0]for i in range(1,len(prices)):# 当前没有股票# 两…...

C++新经典10--vector以及其使用

vector vector类型是一个标准库中的类型,代表一个容器、集合或者动态数组这样一种概念。既然是容器,那就可以把若干个对象放到里面。当然,这些对象的类型必须相同。简单来说,可以把一堆int型数字放到vector容器中去,复…...

std : : vector

一.简介 std::vector 的底层实现通常基于动态数组(dynamic array),它是一种连续分配的内存块,允许元素的快速随机访问。下面是 std::vector 的一些关键特点和底层实现细节: 连续内存块:std::vector 内部使…...

AJAX学习笔记8 跨域问题及解决方案

AJAX学习笔记7 AJAX实现省市联动_biubiubiu0706的博客-CSDN博客 跨域:指一个域名的网页去请求另外一个域名资源.比如百度页面去请求京东页面资源. 同源与不同源三要素:协议,域名,端口 协议一致,域名一致,端口一致.才算是同源.其他一律不同源 新建项目测试: 1.window.open();…...

webhook--详解(gitee 推送)

一、简介 webhook 是一种基于 HTTP 的回调函数,可在 2 个应用编程接口(API)之间实现轻量级的事件驱动通信。是一种新型的前后端交互方式,一种对客户端-服务器模式的逆转,在传统方法中,客户端从服务器请求数…...

高速路自动驾驶功能HWP功能定义

一、功能定义 高速路自动驾驶功能HWP是指在一般畅通高速公路或城市快速路上驾驶员可以放开双手双脚,同时注意力可在较长时间内从驾驶环境中转移,做一些诸如看手机、接电话、看风景等活动,该系统最低工作速度为60kph。 如上两种不同环境和速度…...

Leetcode113. 路径总和 II

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 官方题解:力扣(LeetCode)官网 - 全…...

分布式锁之redis实现

docker安装redis 拉取镜像 docker pull redis:6.2.6 查看镜像 启动容器并挂载目录 需要挂在的data和redis.conf自行创建即可 docker run --restart always -d -v /usr/local/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis/data:/dat…...

Idea中如何在一个项目中引入其他子模块?

首先在Settings打开Project Structure,然后找到Modules,点击加号点击import module,将需要引进的module引进来。 然后点击Artifacts 可以看到比如说day22…这个是我现在的项目,day16是我需要引入的。那么就在红色横线上面右键点第…...

UDP协议概述

传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。TCP 是面向连接的,UDP 是面向无连接的。 所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结…...

Python-tracemalloc-跟踪内存分配

tracemalloc 模块是一个用于对 python 已申请的内存块进行debug的工具。它能提供以下信息: 定位对象分配内存的位置 按文件、按行统计python的内存块分配情况: 总大小、块的数量以及块平均大小。 对比两个内存快照的差异,以便排查内存泄漏 显示前10项 显示内存…...

02 CSS技巧

02 CSS技巧 clip-path 自定义形状&#xff0c;或者使用自带的属性画圆等circle HTML结构 <body><div class"container"></div> </body>CSS结构 使用*polygon*自定义形状 .container {width: 300px;height: 300px;background-color: re…...

Yarn资源调度器

文章目录 一、Yarn资源调度器1、架构2、Yarn工作机制3、HDFS、YARN、MR关系4、作业提交之HDFS&MapReduce 二、Yarn调度器和调度算法1、先进先出调度器&#xff08;FIFO&#xff09;2、容量调度器&#xff08;Capacity Scheduler&#xff09;3、公平调度器&#xff08;Fair …...

BetterGI:解放双手的终极原神自动化助手,每天节省2小时游戏时间

BetterGI&#xff1a;解放双手的终极原神自动化助手&#xff0c;每天节省2小时游戏时间 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一…...

FPGA LVDS输入作为模拟比较器的原理、设计与工程实践

1. 项目概述&#xff1a;当LVDS输入遇上模拟电压 最近几年&#xff0c;各大FPGA厂商都在力推自家的“模拟-数字转换器&#xff08;ADC&#xff09;IP核”&#xff0c;宣传其如何集成便利、性能优越。这让我这个老工程师不禁琢磨&#xff0c;这些IP核的底层原理究竟是什么&#…...

2025 - 2026年国资跑步入场脑机接口,重新定义游戏规则!

突发&#xff01;国资入场脑机接口赛道2025 - 2026年&#xff0c;脑机接口赛道的资本格局悄然生变。从IT桔子融资数据来看&#xff0c;国资/政府基金密集出现在近一年的轮次中&#xff1a;上海国投先导、国投创合跟投阶梯医疗5亿战略融资&#xff1b;浦东创投、张江科投联手投资…...

veil:专为AI智能体设计的无头浏览器自动化工具

1. 项目概述&#xff1a;为AI智能体打造的“隐形之手”如果你正在构建或使用AI智能体&#xff0c;并且希望它能像真人一样操作浏览器——登录社交平台、发布内容、浏览网页、点击按钮——那么你很可能已经感受到了传统自动化工具的掣肘。Selenium、Puppeteer这些工具很棒&#…...

Windows驱动存储管理终极指南:DriverStore Explorer技术深度解析

Windows驱动存储管理终极指南&#xff1a;DriverStore Explorer技术深度解析 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer DriverStore Explorer&#xff08;简称RAPR&#xff09;是一…...

从继电器到边缘计算:拆解PAC控制器里的‘智能手机’架构(以Codesys/倍福为例)

从继电器到边缘计算&#xff1a;拆解PAC控制器里的‘智能手机’架构 在工业自动化领域&#xff0c;PAC&#xff08;可编程自动化控制器&#xff09;正逐渐取代传统PLC&#xff0c;成为智能制造的核心大脑。这种转变类似于功能手机向智能手机的进化——从单一功能到开放平台&…...

为AI编程助手构建持久化项目记忆库:告别上下文遗忘,提升团队协作效率

1. 项目概述&#xff1a;为AI编程助手构建持久化项目记忆库如果你和我一样&#xff0c;每天都要和Claude Code、Cursor这些AI编程助手打交道&#xff0c;肯定遇到过这个烦人的问题&#xff1a;每次新开一个对话&#xff0c;AI就像得了失忆症&#xff0c;完全不记得你刚才在做什…...

手把手教你用C8051F330自制BLheli电调:从测绘XP-12A到暴力测试70涵道

从零构建BLheli电调&#xff1a;C8051F330硬件逆向与70涵道暴力测试全指南 当你拆开一台现成的航模电调&#xff0c;看到里面密密麻麻的元件时&#xff0c;是否想过自己也能从头打造一个&#xff1f;本文将带你深入电调硬件设计的核心&#xff0c;从测绘商业电调XP-12A开始&…...

从MWC 2016看5G与物联网:技术演进、产业博弈与生态构建

1. 从巴塞罗那看2016年移动通信的十字路口 时间回到2016年初&#xff0c;如果你身处通信行业&#xff0c;那么2月底的日程表上&#xff0c;巴塞罗那的“移动世界大会”绝对是一个绕不开的焦点。那不是一个普通的展会&#xff0c;更像是一个行业在技术迭代、市场转型和地缘政治多…...

2026免费照片去水印软件App排行榜,手机电脑去水印哪款好用?实测推荐

2026免费照片去水印软件App排行榜&#xff0c;手机电脑去水印哪款好用&#xff1f;实测推荐 图片上的水印去不掉&#xff0c;一直是不少人的痛点。从社交平台保存下来的图片带着平台Logo&#xff0c;下载的素材图带有版权标识&#xff0c;或者照片里不小心拍到广告文字——这些…...