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

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

6. ArrayList第三讲


索引(下标)是从0开始的


.indexOf()方法用于查找元素首个下标


.lastIndexOf()方法用于查找元素最后一个下标



.isEmpty()方法用于检查集合是否为空



.remove()方法用于删除元素,默认根据下标删除,可以根据objectindex删除



.removeAll()方法用于移除所有元素



.replaceAll()方法用于替换所有元素


.toLowerCase()用于转换成小写


.toUpperCase()用于转换成大写


.retainAll()方法用于取交集



.set()方法用于给指定的下标元素设置值



.sort()方法用于排序,默认从小到大



.reverse()方法用于置反集合



.subList()方法用于切割容器,需要注意截止于前一个元素



7. Linked链表


  • ArrayList数组集合,增删慢,查询快


  • LinkedList链表集合,增删快,查询慢


8. LinkedList一带而过


  • 链表是数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址


  • 链表可分为单向链表和双向链表


  • Java LinkedList类似于 ArrayList,是一种常用的数据容器



9. 提醒


  • 多看JDK文档,多练习,把基础打好


10. iterator 迭代器初试


  • 迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需目标或结果


  • 每一次对过程的重复被称为一次“迭代”,而每一次迭代的结果会被用来作为下一次迭代的初始值


迭代器Iterator,不管用于ArrayList还是LinkedList都可以迭代输出




迭代器类似用链表的形式去迭代,也可以指定泛型



11. fori、增强for、迭代器的区别、注意事项和分别用途


  • fori适合数据的读取与修改


  • for each适合数据的读取


  • Iterator不要使用嵌套,适合数据的读取与修改


for each绝对不能与.remove()方法一起使用,危险会导致所有数据删除



for each已经是一个小型的迭代器了,如果一定要修改集合的话可以使用迭代器,但不建议在for each中使用对象引用去修改元素


12. 谈谈三者性能


比较时间复杂度,foreach和迭代器谁更快呢?


  • 如果是 ArrayList ,用三种方式遍历的速度是for>Iterator>foreach,速度级别基本一致,一般都会用for或者for each,因为Iterator写法相对复杂一些


  • 如果是 LinkedList,则三种方式遍历的差距很大了,数据量大时越明显,Iterator>foreach>>>for,推荐使用foreach或者Iterator


参考:List遍历:for,foreach Iterator 速度比较


13. Set和HashSet


  • HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合,允许有 null 值,是无序的,即不会记录插入的顺序


  • HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的,必须在多线程访问时显式同步对HashSet 的并发访问


HashSet 实现了 Set 接口



使用Hash函数实现HashSet,元素无序,且不重复



参考:关于Java的Hash算法的深入理解


14. LinkedHashSet


如果要创建有序集合呢?LinkedHashSet便是有序的



15. Map、HashMap、Entry


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



HashMap是映射关系,即键KeyValue



HashMap不能使用迭代器Iterator



.replace()方法可以替换键Key对应的值Value



Key以集合形式输出,.keySet()方法返回值是HashMapKey值的集合



HashMap以集合形式输出, .entrySet()方法的返回值也是Set集合



16. Map注意点


已经存在的键值对,再次.put()会替换原来的,.get()不存在的值会返回null



17. Entry与Map转换Set之后遍历: Iterator<Entry<Integer,Integer>> iterator = entrySet.iterator(); (什么?看不懂这行?)


  • Entry就是用来管理键值对对象的,将对象包裹起来,提供遍历的方式


  • Entry可以使用迭代器,筛选值,但只适合在内存中使用,不适用于JDBC



18. 提及 LinkedHashMap以及课后作业


HashMap是无序的,可以自定义泛型,而LinkedHashMap相当于有序的HashMap,可以自己写一个包括增删改查的学生管理系统了



19. 集合框架部分结束


剩下的类需要自己去学习了!了解各类是怎么实现的,以及其之间的区别,JDK的新特性暂时用不到,还没学习到框架

目录
相关文章
|
13天前
|
开发者 API 机器学习/深度学习
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
本文详解淘宝、1688、义乌购三大平台图片搜索接口的核心特点、调用流程与实战代码。涵盖跨平台对比、参数配置、响应解析及避坑指南,支持URL/Base64上传,返回商品ID、价格、销量等关键信息,助力开发者快速实现商品识别与比价功能。
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
|
22天前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
23天前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
183 0
|
24天前
|
JSON API 调度
Midjourney 技术拆解与阿里云开发者实战指南:从扩散模型到 API 批量生成
Midjourney深度解析:基于优化Stable Diffusion,实现文本到图像高效生成。涵盖技术架构、扩散模型原理、API调用、批量生成系统及阿里云生态协同,助力开发者快速落地AIGC图像创作。
299 0
|
24天前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
27天前
|
数据采集 缓存 API
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)
本文详解小红书笔记详情API的开发对接、实战场景与收益模式,涵盖注册避坑、签名生成、数据解析全流程,并分享品牌营销、内容创作、SAAS工具等落地应用,助力开发者高效掘金“种草经济”。
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)
|
28天前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
260 12
|
1月前
|
供应链 监控 安全
1688商品详情API接口实战指南:合规获取数据,驱动B2B业务增长
1688商品详情API(alibaba.product.get)是合规获取B2B商品数据的核心工具,支持全维度信息调用,助力企业实现智能选品、供应链优化与市场洞察,推动数字化转型。
|
1月前
|
缓存 监控 供应链
亚马逊 MWS API 实战:商品详情精准获取与跨境电商数据整合方案
本文详细解析亚马逊MWS API接口的技术实现,重点解决跨境商品数据获取中的核心问题。文章首先介绍MWS接口体系的特点,包括多站点数据获取、AWS签名认证等关键环节,并对比普通电商接口的差异。随后深入拆解API调用全流程,提供签名工具类、多站点客户端等可复用代码。针对跨境业务场景,文章还给出数据整合工具实现方案,支持缓存、批量处理等功能。最后通过实战示例展示多站点商品对比和批量选品分析的应用,并附常见问题解决方案。该技术方案可直接应用于跨境选品、价格监控等业务场景,帮助开发者高效获取亚马逊商品数据。
|
1月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
191 100