初识集合框架

前言~🥳🎉🎉🎉 

hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥💥,如果发现这篇文章有问题的话,欢迎各位评论留言指正,大家一起加油!一起chin up!👍👍 

💥个人主页:E绵绵的博客
💥所属专栏:JAVA知识点专栏   JAVA题目练习  c语言知识点专栏   c语言题目练习

❤️❤️从这一篇文章开始,我们正式结束JAVASE,正式开始学习java数据结构这个阶段。我们这篇文章主要是为java数据结构这个阶段起个头,讲下其主要框架。那么开始出发吧!

什么是集合框架 

❤️❤️Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。有几个典型的集合框架:

Collection接口:是集合框架的根接口,定义了一组通用的方法,用于操作集合中的元素。它有两个主要的子接口:List和Set。

List接口:继承自Collection接口,表示一个有序的集合,允许重复元素。它的常见实现类有ArrayList、LinkedList和Vector。

Set接口:继承自Collection接口,表示一个不允许重复元素的集合。它的常见实现类有HashSet、TreeSet和LinkedHashSet。

Map接口:表示一组键值对的集合,每个键都是唯一的。它的常见实现类有HashMap、TreeMap和LinkedHashMap。

集合框架提供了丰富的方法和算法,可以方便地对集合进行增删改查等操作。它可以用于各种场景,如数据存储、数据排序、数据过滤等。使用集合框架可以提高代码的可读性和可维护性,并且可以更好地利用Java语言的特性。

如下是其总体系图(里面包含了很多集合框架,并且内部都是重要的类和接口):

这图我们看下就行,不要求强记里面的类和接口,在之后的学习里会一一讲解这里面的类和接口。

集合框架的重要性 

1. 开发中的使用

❤️❤️使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景。

2. 笔试及面试题 

腾讯-Java后台开发面经

1. HashMap 了解不,介绍一下,如果一个对象为 key 时,hashCode 和 equals 方法的用法要注意什么?

2. HashSet 和 HashMap 的区别是什么?

3. HashMap 是线程安全的么?那需要线程安全需要用到什么?

阿里巴巴-Java后台开发面经

1. ArrayList 和 LinkedList 的区别是什么?

2. 有了解过 HashMap 的具体实现么?

3. HashMap 和 ConcurrentHashMap 哪个效率更高?

今日头条-Java后台开发面经

1. 编程题:判断一个链表是否是一个回文链表。

2. Redis 的 zset 类型对应到 java 语言中大致是什么类型?

3. hashCode 主要是用来做什么用的?

❤️❤️在面试时大部分是跟其有关的知识,所以我们得学好它,才能找到心仪的offer。

容器背后所涉及的数据结构以及算法 

1.什么是数据结构 

🎯🎯数据结构是计算机科学中用于组织和存储数据的一种方式。它定义了数据的组织方式、访问和操作数据的方法,以及数据之间的关系。常见的数据结构包括数组、链表、栈、队列、树、图等。(之后一一会讲)

2.容器背后对应的数据结构

❤️❤️在学数据结构的这阶段,我们主要学习以下容器,每个容器其实都是对某种特定数据结构的封装,大概了解一下,也不用记,之后的文章会给大家一一详细讲解并模拟实现:

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

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

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

LinkedList:实现了List接口,底层为双向链表

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

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

5. Deque:是一个接口

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

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

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

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

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

TreeMap:底层为红黑树,查询的时间复杂度为O( ),关于key有序

3.涉及的相关java知识

1. 泛型 Generic

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

3. Object 的 equals 方法

4. Comparable 和 Comparator 接口

❤️❤️对于这四个知识点,我们最后两个知识点在这之前就学了,前面两个没学,不过很快就会讲。

4.什么是算法 

🎯🎯算法(Algorithm)是一系列解决问题的步骤或规则。它是计算机科学中非常重要的概念,用于描述如何执行特定任务或解决特定问题的方法。算法可以用来处理数据、执行计算、进行搜索、排序等等。一个好的算法应该具有正确性、效率和可读性等特点。

🎯🎯如何学好数据结构以及算法 

以上文章部分都是对于我们的数据结构阶段开的头,大概介绍了上述java数据结构主要要学的知识点,这些知识点我们目前不要求记住背下,因为之后会一一详细介绍。

🎯🎯那么回归正题,怎么学好这阶段呢?

1. 不能死磕代码,要多思考其逻辑,而不是光看代码

2.注意画图和思考

3.多写博客总结

4.多刷题,牛客网 和 LeetCode都可以

总结 

所以我们java数据结构阶段的学习就开完头啦!下篇文章将正式开始其知识点的详细学习!还希望各位大佬们能给个三连,点点关注,点点赞,发发评论呀,感谢各位大佬~❤️❤️💕💕🥳🎉🎉🎉

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器视觉图像采集卡及其接口概述

本文主要是介绍机器视觉图像采集卡及其使用的各种接口。 首先,我们将概述外围计算机卡,然后探索图像采集卡中使用的不同类型的机器视觉接口。 我们先来说一个常见的问题:什么是电脑外设卡,如何分类? 用于机器视觉的…

GIS 数据格式转换

1、在线工具 mapshaper 2、数据上传 3、数据格式转换 导入数据可导出为多种格式:Shapefile、Json、GeoJson、CSV、TopJSON、KML、SVG

【python】项目实战

启动一个项目对于新手都是不容易的事情 在哪 对于Windows平台,打开cmd 使用命令py -0p 【其中0是零】 显示已安装的 python 版本且带路径的列表 切换python3命令 在Windows下,可以使用cmd下使用mklink命令创建“软链接”更好一些。 例如&#xf…

Three.js--》穿越虚拟门槛打造的3D登录界面

今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 目录 项目搭建 初始化three代码 添加背景与地球 星星动画效果 星云动画效果 实现登录框效果 项目搭建…

软件设计不是CRUD(18):像搭积木一样搭建应用系统(上)——单个应用系统的搭建过程

1、概述 之前的文章本专题花了大量文字篇幅,介绍如何基于业务抽象的设计方式完成应用系统各个功能模块的设计工作。而之所以进行这样的功能模块设计无非是希望这些功能模块在具体的项目实施过程中,能够按照当时的需求快速的、简易的、稳定的、最大可能节约开发成本的形成可用…

提高大型语言模型 (LLM) 性能的四种数据清理技术

原文地址:four-data-cleaning-techniques-to-improve-large-language-model-llm-performance 2024 年 4 月 2 日 检索增强生成(RAG)过程因其增强对大语言模型(LLM)的理解、为它们提供上下文并帮助防止幻觉的潜力而受…

关于沃进科技无线模块demo软件移植问题

文章目录 一、无线模块开发测试准备二、开发板硬件三、开发板默认功能上电默认界面功能选择界面数据包发送界面数据包接收显示界面射频性能测试界面参数设置界面固件信息显示界面 四、软件开发软件SDK框图1、射频硬件驱动(详见./radio/myRadio_gpio.c)2、…

Linux_iptables防火墙学习笔记

文章目录 iptables 概述四表五链iptables 安装启动iptables 配置详解iptables配置文件iptables配置语法iptables常用实例查看规则修改默认规则保存和备份规则恢复备份的规则清空规则放行SSH服务在ubuntu14.04中iptables规则持久化 iptables 概述 主机型 对主机进行保护 网络型…

CSS基础:margin属性4种值类型,4个写法规则详解

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集 268篇…

pnpm 使用 workspace 报错 ERR_INVALID_THIS

有时候真的感觉如果有一个老师指路,那么遇到的坑真的会少很多。 错误示例: GET https://registry.npmjs.org/rollup%2Fplugin-typescript error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.原因是什么?原因就是 pnpm 的…

Web中使用Weblogic用户

WebLogic用户,组设置 1. 登录weblogic console, domain结构中选择Security Realms,显示安装时默认创建的Realm : myrealm 2. 点击myrealm, 选择 users and Group, 追加用户和组 选择既存的权限组追加到新规的组中,赋予…

pyenv-win管理windows上多个版本python

pyenv是一款管理多个python版本的工具,可以便捷的切换使用的python版本,但是不支持windows环境,在windows环境需要使用pyenv-win pyenv-win安装 官方介绍的安装方式比较多,在此主要记录一下我习惯的安装方式 下载pyenv-win,可以…

2024-04-15_[UPnP]:详细解析

UPnP 一、论文阅读 1.2 Theory 1.2.1 Geometry of the absolute pose problem α i f i v i R p i t , i 1.. n . \alpha_i \mathbf{f}_i \mathbf{v}_i \mathbf{R} \mathbf{p}_i \mathbf{t} ,i1..n. αi​fi​vi​Rpi​t,i1..n. 其中: P i ∈ R 3 P_i \i…

javaWeb项目-闲置二手物品交易平台功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、Spring Boot框架 …

PHP:IntelliJ IDEA 配置 PHP 开发环境及导入PHP项目

在创建PHP项目之前我们需要安装PHP插件,安装步骤如下:Windows:IntelliJ IDEA Ultimate 安装 PHP 插件-CSDN博客 1、导入已有PHP项目,导入之后选择,File > Setting 选择对应 CLL Interpreter,如果没有操…

麒麟服务器操作系统安装TFTP服务

原文链接:麒麟服务器操作系统安装TFTP服务 Hello,大家好啊!今天我们将讨论如何在麒麟服务器操作系统上安装和配置TFTP(Trivial File Transfer Protocol)服务。TFTP是一种简单的文件传输协议,通常用于无盘工…

9. Spring Boot 日志文件

本篇文章源码位置延续上个章节:SpringBoot_demo 本篇文章内容源码位于上述地址的com/chenshu/springboot_demo/logging包下 1. 日志的作用 发现和定位问题: 日志是程序的重要组成部分,它在系统、程序出现错误或异常时提供诊断和解决问题的线…

07 SQL进阶 -- 集合运算 -- 表的加减法

1. 表的加减法 1.1 什么是集合运算 集合在数学领域表示“各种各样的事物的总和”, 在数据库领域表示记录的集合. 具体来说,表、视图和查询的执行结果都是记录的集合, 其中的元素为表或者查询结果中的每一行。 在标准 SQL 中, 分别对检索结果使用 UNION, INTERSECT, EXCEPT 来…

使用 Tranformer 进行概率时间序列预测实战

使用 Transformers 进行概率时间序列预测实战 通常,经典方法针对数据集中的每个时间序列单独拟合。然而,当处理大量时间序列时,在所有可用时间序列上训练一个“全局”模型是有益的,这使模型能够从许多不同的来源学习潜在的表示。…