8:Java Conllections FrameWork-Java API 实战(上)

简介: 8:Java Conllections FrameWork-Java API 实战

1. 原生数组带来的问题,抛出问题


  • 原生数组容易造成超出边界,如果非要使用传统的数组,增删改查,就要用到数据结构,非常复杂


  • CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写


由此引出Java Conllections FrameWork即Java集合框架,也可称为函数库



2. Conllections家族


  • Java集合框架是一个包含一系列实作可重复使用集合的数据结构的类别和界面集合


  • Java集合大致可以分为两大体系,一个是Collection,另一个是Map


这里是引用java.util.Collection下的接口和继承类关系简易结构图:


java.util.Map下的接口和继承类关系简易结构图:


3. 黑帮的帮规


  • lterables集合层次结构中的根接口,可以理解成帮派老大


  • 当我们要帮派帮忙时,一般请它下面的小弟来办事,所以用的时候找类来实现


  • 所有类和接口都自身相关的规定,也必须遵守总集合的规定



4. ArrayList第一讲


ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。


ArrayList 继承了 AbstractList ,并实现了 List 接口可以自动扩容



泛型限定是指将类型做限定,可设置成只能存放String类型



如果要进行CRUD,可以创建一个Student



正常来说Student并不是以数组的形式输出的,而是toSring,如果要再添加一个对象扩容的话,又要gettersetter一遍



如果换成集合形式输出, 效果会大不同



这下扩容就方便多了,只需.add()即可,也不用担心数组下标,不用像传统输出写一个for循环了



5. ArrayList第二讲


.add()方法可以添加元素和替换元素



.add(0, 4)表示在第0个下标处插入元素4



.addAll()表示合并元素,讲arrayList_2合并到arrayList_1之后



查看源代码中,集合是先转换为数组,再拷贝到一份新数组返回



.toarray()方法表示返回集合的数组形式



.clear()方法表示清楚数据



.contaions()方法用于判断字符串中是否包含指定的字符或字符串



.get()方法获得集合里的元素,for循环遍历具有操作性,集合的长度要用.size(),数组的长度用.length()



.get()的源代码中,是先检查指是否存在,在返回元素值



如何对集合中每个元素操作呢?增强for循环 for each ,可以实现对每个元素值都加1




目录
相关文章
|
22天前
|
Java API C++
Java 8 Stream Api 中的 peek 操作
本文介绍了Java中`Stream`的`peek`操作,该操作通过`Consumer<T>`函数消费流中的每个元素,但不改变元素类型。文章详细解释了`Consumer<T>`接口及其使用场景,并通过示例代码展示了`peek`操作的应用。此外,还对比了`peek`与`map`的区别,帮助读者更好地理解这两种操作的不同用途。作者为码农小胖哥,原文发布于稀土掘金。
Java 8 Stream Api 中的 peek 操作
|
11天前
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
32 6
|
9天前
|
Java 程序员 API
Java 8新特性之Lambda表达式与Stream API的探索
【9月更文挑战第24天】本文将深入浅出地介绍Java 8中的重要新特性——Lambda表达式和Stream API,通过实例解析其语法、用法及背后的设计哲学。我们将一探究竟,看看这些新特性如何让Java代码变得更加简洁、易读且富有表现力,同时提升程序的性能和开发效率。
|
7天前
|
SQL Java Linux
Java 8 API添加了一个新的抽象称为流Stream
Java 8 API添加了一个新的抽象称为流Stream
|
13天前
|
Java
领略Lock接口的风采,通过实战演练,让你迅速掌握这门高深武艺,成为Java多线程领域的武林盟主
领略Lock接口的风采,通过实战演练,让你迅速掌握这门高深武艺,成为Java多线程领域的武林盟主
22 7
|
10天前
|
存储 前端开发 API
告别繁琐,拥抱简洁!Python RESTful API 设计实战,让 API 调用如丝般顺滑!
在 Web 开发的旅程中,设计一个高效、简洁且易于使用的 RESTful API 是至关重要的。今天,我想和大家分享一次我在 Python 中进行 RESTful API 设计的实战经历,希望能给大家带来一些启发。
25 3
|
10天前
|
Java
flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat
flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat
14 2
|
14天前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
54 1
|
25天前
|
监控 Java 大数据
【Java内存管理新突破】JDK 22:细粒度内存管理API,精准控制每一块内存!
【9月更文挑战第9天】虽然目前JDK 22的确切内容尚未公布,但我们可以根据Java语言的发展趋势和社区的需求,预测细粒度内存管理API可能成为未来Java内存管理领域的新突破。这套API将为开发者提供前所未有的内存控制能力,助力Java应用在更多领域发挥更大作用。我们期待JDK 22的发布,期待Java语言在内存管理领域的持续创新和发展。
|
21天前
|
存储 负载均衡 Java
Jetty技术深度解析及其在Java中的实战应用
【9月更文挑战第3天】Jetty,作为一款开源的、轻量级、高性能的Java Web服务器和Servlet容器,自1995年问世以来,凭借其卓越的性能、灵活的配置和丰富的扩展功能,在Java Web应用开发中占据了举足轻重的地位。本文将详细介绍Jetty的背景、核心功能点以及在Java中的实战应用,帮助开发者更好地理解和利用Jetty构建高效、可靠的Web服务。
32 2
下一篇
无影云桌面