初识集合框架

news2024/12/29 9:52:21

前言~🥳🎉🎉🎉 

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

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

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

相关文章

分享2024 golang学习路线

写在前面 Go语言(也称为Golang)是Google开发的一种静态强类型、编译型语言,它具有简洁、快速、安全、并发等特点,尤其适合构建大型软件、微服务架构和云平台服务。Go的学习曲线相对平缓,社区活跃,是现代编…

吴恩达llama课程笔记:第四课提示词技术

羊驼Llama是当前最流行的开源大模型,其卓越的性能和广泛的应用领域使其成为业界瞩目的焦点。作为一款由Meta AI发布的开放且高效的大型基础语言模型,Llama拥有7B、13B和70B(700亿)三种版本,满足不同场景和需求。 吴恩…

在Windows上配置VS Code GO语言开发环境

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

上岸必看:C++ 24校招/25实习求职指南

校招和实习是应届生步入职场的重要途径,是职业生涯的起点。 通过实习和校招进入的岗位,C应届生能够更好地了解行业现状,明确自己的职业兴趣和发展方向。有的时候,实际工作中的体验甚至会引导你重新考虑和规划自己的职业道路。 并…

Mac下载的软件显示文件已损坏,如何解决文件已损坏问题

当在Mac上下载的软件显示文件已损坏时,这可能是因为多种原因导致的,包括网络问题、下载中断、软件未完整下载、文件传输错误等。解决这个问题需要采取一些步骤来排除可能的原因,并尝试修复文件。下面将详细介绍一些常见的解决方法&#xff1a…

算法课程笔记——排序

Bool返回真假 为何用const不用define 1.保护被修饰的东西 2.通常不分配存储空间, 效率高 匿名函数只在一处用,其他处用不到 不写&就是拷贝 u相等就u,不等就v 一个字符是空格一个是换行,后面是取下标i那就是1(true&…

利用vite创建vue项目

创建vue项目步骤 打开HBuilder X工具,创建空白项目 进入终端(鼠标点击文件进行选择,然后终端) 利用vite脚手架创建项目 (前提要将HBuilder X工具属性设为管理员运行状态(属性》兼容》管理员身份运行此程序) npm …

CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者…

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 的…

MySQL表空间管理与优化(8/16)

表空间管理和优化 innodb_file_per_table参数(此参数在分区表章节中还会出现): 这个参数决定了InnoDB表数据的存储方式。当参数设置为ON时,每个InnoDB表的数据会单独存储在一个以.ibd为后缀的文件中,这有利于管理和回收…

python数据结构与算法之线性表

1、线性表 是一种由n个元素(n> 0 )数据元素组成的有限序列,所包含的元素数量通常被称为表的长度 n 0 的表被称为空表,线性表的数据元素可以单一也可以复杂,可以是整数,字符串,也可以是由几…

活动预告|NineData 创始人CEO叶正盛将参加QCon全球软件开发大会,共话AI大模型技术在数据库DevOps的实践

4月13日下午,NineData创始人&CEO叶正盛即将参加InfoQ中国主办的『QCon全球软件开发大会北京站』的技术大会。在本次技术峰会上,叶正盛将以《AI大模型技术在数据库DevOps的实践》为主题,深入剖析AI大模型技术在数据库DevOps领域的最新进展…

Zookeeper的集群搭建和ZAB协议详解

Zookeeper的集群搭建 1)zk集群中的角色 Zookeeper集群中的节点有三个角色: Leader:处理集群的所有事务请求,集群中只有一个LeaderFollwoer:只能处理读请求,参与Leader选举Observer:只能处理读…

软考数据库---3.关系数据库

3.1 名词 属性分类 数据库实体属性分类主要包括以下几个方面: 标识属性 (Key Attribute / Identifier): 这些属性是用来唯一识别实体实例的关键属性,也称为主键(Primary Key)。在数据库表中,每个实体的实例&#xff0…

【GD32】GP2Y1014AU粉尘传感器

2.42 GP2Y1014AU粉尘传感器 2.42.1 模块来源 采购链接: GP2Y1014AU粉尘传感器模块 PM2.5灰尘传感器代替GP2Y1010AU0F 2.42.2 规格参数 工作电压:5-7V 消耗电流:最大20mA 最小粒子检出值:0.8微米 灵敏度:0.5V(0.1mg…

锁策略总结

锁策略 悲观锁和乐观锁 乐观锁和悲观锁不是具体类型的锁而是指两种不同的对待加锁的态度,这两个锁面对锁冲突的态度是相反的。 乐观锁:认为不存在很多的并发操作,因此不需要加锁。悲观锁:认为存在很多并发操作,因此需…

c++编程(4)——类与对象(2)构造函数、析构函数

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 构造函数默认构造函数析构函数默认析构函数 构造函数 以一个日期类为例。 class Data { private:int _year;int _month;int _day; };这个类实例化出来的对象内的值都是编译器默认初始化的随机值。 Data d1…

私域流量变现干货:轻松盘活,高效增长!

你知道如何增长私域流量并将这些流量转化为实际收益,让我们的品牌价值最大化吗? 今天,就分享几点干货,帮助大家盘活私域流量,实现高效增长! 1、精准定位和用户画像 首先,了解您的私域流量源于…

位像素谈海外仓库存管理方法:WMS对效率提升到底有没有用?

对海外仓来说,最重要的事情就是把库存管理做清楚。因为海外仓的本质还是仓储,如果连仓储数据都出现错误,那不管是对客户还是对终端消费者来说,都会造成巨大的影响。 今天我们就来聊一下,在电商飞速发展的今天&#xf…

面试官:说一说CyclicBarrier的妙用!我:这个没用过...

写在开头 面试官:同学,AQS的原理知道吗? 我:学过一点,抽象队列同步器,Java中很多同步工具都是基于它的… 面试官:好的,那其中CyclicBarrier学过吗?讲一讲它的妙用吧 我&…