初识集合框架 -Java

news2024/11/29 20:49:44

目录

一、集合框架的概念

二、集合框架的重要性

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

        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. 多刷题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/991876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图卷积神经网络】1-入门篇:为什么使用图神经网络(下)

为什么使用图神经网络? 在本书中,我们将重点介绍图学习技术中的深度学习家族,通常称为图神经网络。GNNs是一种新的深度学习架构类别,专门设计用于处理图结构化数据。与主要用于文本和图像的传统深度学习算法不同,GNNs明确地用于处理和分析图数据集(见图1.4)。 图1.4 - …

Vue3+Ts+Vite项目(第一篇)——使用Vite创建Vue3项目

概述 保姆级详解,带你使用 Vite 创建 Vue3 项目,全程cv即可 文章目录 概述一、 安装 Vite二、 创建项目2.1 运行上述命令后,会让我们输入项目名称。可以写一个 vue3-study2.2 选择项目模板,此处选择 Vue,然后回车确定…

无涯教程-JavaScript - IMPOWER函数

描述 IMPOWER函数以x yi或x yj文本格式返回加到幂的复数。求幂的复数的计算方法如下- $$(x yi)^ n r ^ ne ^ {n \theta} r ^ n \cos n \theta ir ^ n sin n \theta $$ 哪里- $$r \sqrt {x ^ 2 y ^ 2} \:\:和\:\:\theta \tan ^ {-1} \left(\frac {y} {x} \right)\:…

雅思写作 三小时浓缩学习顾家北 笔记总结(四)

目录 The company should provide maternity leave and other assistance to female employees with children. Community redevelopment provides opportunities for offenders to acquire vocational skills. The law should classify drunk driving as a criminal offens…

JavaScript对象方法

在 JavaScript 中,对象可以包含方法,即函数作为它的属性。这些被称为对象函数或方法。 例如: const ITshareArray {firstname: "张三",secondname: "二愣子",birthYear: "1996",job: "程序员",fri…

多元共进|科技促进艺术发展,助力文化传承

科技发展助力文化和艺术的传播 融合传统与创新,碰撞独特魅力 一起来了解 2023 Google 开发者大会上 谷歌如何依托科技创新 推动艺术与文化连接 传承和弘扬传统文化 自 2011 年成立以来,谷歌艺术与文化致力于提供体验艺术和文化的新方式,从生成…

SpringAOP面向切面编程

文章目录 一. AOP是什么?二. AOP相关概念三. SpringAOP的简单演示四. SpringAOP实现原理 一. AOP是什么? AOP(Aspect Oriented Programming):面向切面编程,它是一种编程思想,是对某一类事情的集…

热迁移技术-QEMU

社区有言Talk is cheep, show me the code,我们尽量低纬度描述技术。 代码和版本: Qemu-5.0 #热迁移技术的实现者 Kernel-4.19 #提供kvm实现 热迁移的演进 Qemu有加载保存vm的功能,这是两个互补的操作。保存状态就是为每个vm中运行的设备保存…

不同的二叉搜索树【动态规划】

不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 class Solution {//testpublic int numTrees(int n) {//初始化 dp 数组int[] dp new int[n 1];//初始化…

像素空间文生图之Imagen原理详解

论文:Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding项目地址:https://imagen.research.google/代码(非官方):https://github.com/deep-floyd/IF模型权重:https://huggingface.co/DeepFloyd/IF-I-XL-v1.0🤗关注公众号 funNLPer 白嫖…

初识网络的发展史、通信基础和原理

目录 一.网络的发展史 二.网络通信基础 2.1IP地址 2.2端口号 2.3认识协议 2.3.1协议是什么? 2.3.2为什么需要协议? 2.3.3OSI模型和TCP/IP体系结构 三.网络通信的原理 总结 🎁个人主页:tq02的博客_CSDN博客-C语言,Java,J…

如何在海外通过A/B测试来优化应用

在App Store和Google Play上,视觉资产是应用商店优化(ASO)的重要组成部分。我们的游戏图标、屏幕截图和预览视频具有很高的转化潜力。 1、将应用页面元素的一个或多个变体与默认元素进行竞争。 借助A/B测试,我们可以轻松、客观地发现访问者的偏好。这样…

PPT架构师架构技能图

PPT架构师架构技能图 目录概述需求: 设计思路实现思路分析1.软素质2.核心输出(office输出) 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,ma…

MFC中的类继承图的基本框架

一、类继承关系 从图中可知,在MFC中大多数的类都派生于CObject类,它的主要作用是为子类提供一些基本的功能,这些派生类构成了MFC应用程序的基本框架,它们各自的功能描述如表1所示。 派生类 功能描述 CCmdTarget 用于处理用户请…

React-Hooks 和 React-Redux

Hooks基本介绍------------------------- Hooks:钩子、钓钩、钩住, Hook 就是一个特殊的函数,让你在函数组件中获取状态等 React 特性 ,是 React v16.8 中的新增功能 作用:为函数组件提供状态、生命周期等原本 class …

51、基于注解方式开发Spring WebFlux,实现生成背压数据,就是实现一直向客户端发送消息

★ Spring WebFlux的两种开发方式 1. 采用类似于Spring MVC的注解的方式来开发。此时开发时感觉Spring MVC差异不大,但底层依然是反应式API。2. 使用函数式编程来开发★ 基于注解开发Spring WebFlux 开发上变化并不大,主要是处理方法的返回值可使用Mon…

Devos勒索病毒:网络安全的新威胁,勒索病毒解密,数据恢复

随着信息技术的飞速发展,网络安全问题日益凸显。近年来,一种名为Devos的勒索病毒在全球范围内肆虐,给企业和个人带来了极大的损失。本文将详细介绍Devos勒索病毒的特点、传播途径以及预防和应对措施,帮助大家更好地认识和防范这一…

针对JavaScript混淆加密,JShaman推出新功能

JShaman英文版在最新的一次更新时,增加了新功能: JavaScript代码混淆加密完成后,可以显示各功能耗时、处理的AST节点数量, 以此可知对代码做了哪些保护处理。 如上图所示,在此例中,对代码共进行了23项混淆…

Python标准数据类型-List(列表)

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

无涯教程-JavaScript - IMPRODUCT函数

描述 IMPRODUCT函数以x yi或x yj文本格式返回1到255个复数的乘积。两个复数的乘积为- $$(A BI)(C DI)(AC-BD)(A B)1 $$ 语法 IMPRODUCT (inumber1, [inumber2] ...)争论 Argument描述Required/OptionalInumber11 to 255 complex numbers to multiply.Required[inumbe…