当前位置: 首页 > 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 …...

Qwen3-14B-Int4-AWQ助力运维智能化:日志分析与故障排查实战

Qwen3-14B-Int4-AWQ助力运维智能化&#xff1a;日志分析与故障排查实战 1. 运维工程师的日常痛点 凌晨三点&#xff0c;你的手机突然响起。系统告警显示某核心服务出现异常&#xff0c;你需要立即登录服务器查看日志。面对几十GB的日志文件&#xff0c;你不得不用grep、awk等…...

AI赋能React开发:让快马智能助手帮你设计和优化复杂组件逻辑

AI赋能React开发&#xff1a;让快马智能助手帮你设计和优化复杂组件逻辑 最近在开发一个电商网站时&#xff0c;遇到了一个常见的需求&#xff1a;实现一个侧边栏商品筛选组件。这个组件需要包含价格区间滑块、多品牌复选框和分类下拉选择三个主要功能。刚开始觉得这个需求挺简…...

3步实战指南:轻松搭建抖音直播间弹幕数据抓取系统

3步实战指南&#xff1a;轻松搭建抖音直播间弹幕数据抓取系统 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取&#xff08;2024最新版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 想象一下&#xff0c;你…...

临近起飞,在哪个平台更容易捡漏特价机票?2026年实测指南

“机票越临近起飞越便宜”——这个说法你一定听过。每逢假期临近&#xff0c;总有人在社交媒体上分享自己“起飞前两小时抢到白菜价机票”的神奇经历。但当你真的想在清明、五一出行前“赌一把”时&#xff0c;往往发现价格不仅没降&#xff0c;反而翻倍了。那么问题来了&#…...

3步打造开源工具效率引擎:QtScrcpy自定义配置全指南

3步打造开源工具效率引擎&#xff1a;QtScrcpy自定义配置全指南 【免费下载链接】QtScrcpy Android实时投屏软件&#xff0c;此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy …...

开源解决方案:企业零代码条码生成的降本实践指南

开源解决方案&#xff1a;企业零代码条码生成的降本实践指南 【免费下载链接】librebarcode Libre Barcode: barcode fonts for various barcode standards. 项目地址: https://gitcode.com/gh_mirrors/li/librebarcode 一、条码管理的隐性成本陷阱&#xff1a;中小企业…...

bert-base-chinese新手教程:从零开始学习中文预训练模型部署与使用

bert-base-chinese新手教程&#xff1a;从零开始学习中文预训练模型部署与使用 1. 认识bert-base-chinese模型 1.1 什么是BERT模型 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是Google在2018年发布的预训练语言模型。它通过大规…...

手把手教你用STM32实现BLDC电机的SPWM控制(附代码调试心得)

STM32实战&#xff1a;无刷直流电机SPWM控制全解析与代码优化指南 从理论到实践&#xff1a;BLDC电机控制的核心逻辑 第一次接触无刷直流电机(BLDC)控制时&#xff0c;我被它优雅的工作原理所吸引——没有电刷的火花和磨损&#xff0c;却能实现高效的能量转换。在工业自动化、无…...

机器人离线编程专访:我是SiemensMCD与pdps用户,该不该切换为国产机器人设计与仿真软件iRobotCAM

摘要: 作为Siemens MCD与PDPS的用户&#xff0c;我从PDPS切换到其它软件时会考虑哪些因素&#xff0c;该不该切换到国产的iRobotCAM&#xff0c;本文通过专该机器人设计与仿真软件专家的形式&#xff0c;提供行业从业者的视角&#xff0c;阐述iRobotCAM的产品特点与适用性。工业…...

别再只用交叉熵了!深入对比YOLOv8中Focal Loss与CIoU Loss的改进效果与适用场景

深入解析YOLOv8损失函数优化&#xff1a;Focal Loss与CIoU Loss的实战对比与场景适配 当你在深夜调试YOLOv8模型时&#xff0c;是否遇到过这样的困境&#xff1a;明明增加了训练数据&#xff0c;小目标检测的准确率却始终上不去&#xff1f;或是发现模型对密集排列的物体总是漏…...