2026/4/15 9:26:38
网站建设
项目流程
企业网站建设门户,最好用的网站,网站建设行业动态,品牌网站建设流程图前言
java集合框架主要包括两种类型的容器#xff0c;一种是集合#xff0c;存储一个元素集合#xff08;Collection#xff09;#xff0c;另一种是图(Map)#xff0c;存储键/值对映射 java集合简介
一、集合简介
java集合可分为Set、List、Queue和Map四种体系。
se…前言java集合框架主要包括两种类型的容器一种是集合存储一个元素集合Collection另一种是图(Map)存储键/值对映射java集合简介一、集合简介java集合可分为Set、List、Queue和Map四种体系。set代表无序、不可重复的集合List代表有序、重复的集合而Map则代表具有映射关系的集合Queue代表一种队列集合实现Java集合就像是一种容器可以把多个对象实际上是对象的引用但习惯上都称对象“丢进”该容器中。从Java5 增加了泛型以后Java集合可以记住容器中对象的数据类型使得编码更加简洁、健壮。2.集合和数组的区别长度区别数组的长度固定而集合长度可变内容区别数组可以是基本数据类型也可以是引用数据类型类、接口、数组二集合只能是引用数据类型元素内容数组只能存储同一数据类型集合可以存储不同数据类型集合一般存储的也是同一数据类型二、List集合1ArrayList集合1、特点ArrayList是集合的一个实现类ArrayList内部封装了一个Object类型的对象初始长度为0且长度可变ArrayList集合的查询快但是增删慢线程不安全2、ArrayList集合的一些方法.add(Object element)向列表的尾部添加指定的元素。.size()返回列表中的元素个数。.get(int index)返回列表中指定位置的元素index从零开始。实现.add(int index,Object element)在列表的指定位置从0开始插入指定元素.set(int i,Object element)使用元素element替换索引i位置的元素并返回替换元素.clear()从列表中移除所有元素.isEmpty()判断列表是否包含元素不包含元素则返回true,否则返回false.contains(Object o)如果列表包含指定的元素则返回true。.remove(int index)移除列表中指定位置的元素并返回被删元素删除位置后面的元素如果有向前移动。.remove(Object o)从List集合中移除第一次出现的指定元素移除成功则返回true否则返回false。当且仅当List集合中含有满足onull ? get(i)null : o.equals(get(i)))条件的最低索引i的元素时才会返回true。.iterator()返回按适当顺序在列表的元素上进行迭代的迭代器for循环遍历List集合加强for循环遍历List集合2LinkedList集合1、LinkedLIst集合的一些特点LinkedList是集合的一个实现类LinkedList内部封装了一个双向链表LinkedList集合的增删快但是查询慢线程不安全2、LinkedList集合的一些方法添加boolean addObject element 它将元素附加到列表的末尾。boolean addint index,Object element 指定位置插入。 void addFirstboolean addint index,Object element 指定位置插入。 void addFirst(E element) 元素附加到列表的头部 void addLast(E element) 元素附加到列表的尾部输出[5, 4, 9, 1, 2, 3, 6]获取数据Object get(int index) 根据下标获取数据Object getFirst 它返回链表的第一个元素。Object getLast 它返回链接列表的最后一个元素。查询boolean containsObject element如果元素存在于列表中则返回true。输出是否出现过元素1true是否出现过元素4: false修改Object setint indexObject element它用于用新元素替换列表中的现有元素输出更新过的链表[1, 9, 3, 1]删除remove() 删除第一个元素remove(int location) 删除指定位置的元素removeFirst() 删除并返回链接列表的头部一个元素removeLast() 删除并返回链接列表的尾部一个元素清空.clear它删除列表中的所有元素。输出[]链表长度输出链表的长度43Vector集合不建议使用Vector集合的特点底层的数据结构是数组有索引、查询快、增删慢单线程线程安全4List集合总结三、Map集合1HashMap集合1.HashMap示意图2.HashMap的特点底层是链表数组,JDK8以后右加了红黑树存储的是key-value类型的数据key值不允许重复,key重复会被覆盖value运行重复数据存储无序:无序指的是插入顺序和取出顺序是不一致的key和value都允许为空但是只能有一个空的key3.HashMap的常用方法①.put(K key, V value) 将键key/值value映射存放到Map集合中②.get(Object key) 返回指定键所映射的值没有该key对应的值则返回 null即获取key对应的value。可知之前加入的value已被覆盖前面的观点得证③. size() 返回Map集合中数据数量准确说是返回key-value的组数。④clear() 清空Map集合0⑤isEmpty () 判断Map集合中是否有数据如果没有则返回true否则返回falsefalsetrue⑥remove(Object key) 删除Map集合中键为key的数据并返回其所对应value值。⑦containsKey(Object key) Hashmap判断是否含有keyfalsetrue⑧containsValue(Object value) Hashmap判断是否含有valuefalsetrue⑨Hashmap添加另一个同一类型的map下的所有数据⑩Hashmap替换这个key的value2)TreeMap集合1…TreeMap的特点TreeMap是一个有序的key-value集合他是通过红黑树实现的无序不允许重复(无序指元素顺序与添加顺序不一致)treeMap的key是有序的TreeMap集合默认会对键进行排序所以键必须实现自然排序和定制排序中的一种:自然排序/定制排序四、set集合1HashSet集合1.HashSet集合的特点HashSet底层使用的是HashMap不能保证元素的顺序元素是无序的,不能有重复的元素集合元素值允许为nulHashSet线程不安全2…HashSet常用方法①add(Object o)向Set集合中添加元素不允许添加重复数据。②size()返回Set集合中的元素个数注意:不会按照保存的顺序存储数据顺序不定遍历时不能保证下次结果和上次相同。且向HashSet集合中添加元素HashSet add方法实质是map全局变量调用了put方法将数据存到了key因为HashMap的 key不允许所以HashSet添加的元素也不允许重复。③.remove(Object o) 删除Set集合中的obj对象删除成功返回true否则返回false。④.isEmpty()如果Set不包含元素则返回 true。⑤.clear() 移除此Set中的所有元素。⑥.iterator()返回在此Set中的元素上进行迭代的迭代器。⑦.contains(Object o)判断集合中是否包含obj元素。true⑧加强for循环遍历Set集合2LinkedHashSet集合LinkedHashSet集合的特点LinkedHashSet底层使用的是HashSet,同时使用链表维护元素的插入顺序元素有序且唯一链表保证元素有序哈希表保证元素唯- 线程不安全3TreeSet集合1.TreeSet集合的特点TreeSet其内部使用的是TreeMap,TreeMap是基于红黑树实现的插入数据内部有两种排序方法自然排序(默认) 定制排序无序:TreeSet会对插入的数据排序所以输入顺序和输出顺序不一致值不能为null值唯一线程不安全2.TreeSet的基本使用①.插入是按字典序排序的②.如果插入的是自定义对象 需要让类实现 Comparable 接口并且必须要重写compareToabcd:12agg:12agg:21ffas:84HashSet、LinkedHashSet、TreeSet的使用场景HashSet:HashSet的性能基本上比LinkedHashSet和TreeSet要好特别是添加和查询这也是用的最多的两个操作LinkedHashSetLinkedHashSet的查询稍慢一些但是他可以维持元素的添加顺序。所以只有要求当插入顺序和取出顺序一致的时候 才使用LinkedHashSet。TreeSet:只有在需要对元素进行排序时使用5list和set集合的区别有序性 List保证按插入顺序排序Set存储和取出顺序不一致唯一性 List可以重复Set元素唯获取元素 Iist可以通过索引直接操作元素Set不能根据索引获取元素Java开发的就业市场正在经历结构性调整竞争日益激烈传统纯业务开发岗位如仅完成增删改查业务的后端工程师的需求特别是入门级岗位正显著萎缩。随着企业技术需求升级市场对Java人才的要求已从通用技能转向了更深入的领域经验如云原生、微服务或前沿的AI集成能力。这也导致岗位竞争加剧在一、二线城市求职者不仅面临技术内卷还需应对学历与项目经验的高门槛。大模型为核心的AI领域正展现出前所未有的就业热度与人才红利2025年AI相关新发岗位数量同比激增543%单月增幅最高超过11倍大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡议价能力极强跳槽薪资涨幅可达30%-50%。值得注意的是市场并非单纯青睐算法研究员而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师在向“Java大模型”复合人才转型时拥有独特优势成为企业竞相争夺的对象其薪资天花板也远高于传统Java岗位。说真的这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis稳稳当当过日子。结果GPT、DeepSeek火了之后整条线上的人都开始有点慌了大家都在想“我是不是要学大模型不然这饭碗还能保多久”先给出最直接的答案一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇如何学习AGI大模型作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享