【读书笔记】TiJava——持有对象

本文深入探讨了Java集合框架中的关键概念,包括ArrayList、LinkedList、HashSet、HashMap、TreeSet、TreeMap等,详细解释了它们的工作原理、特点及适用场景。特别强调了集合操作的性能考量、迭代器的高级用法以及Set与Map的区别,旨在帮助开发者掌握集合框架的高效应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容拾遗

•Arrays.asList()返回的列表底层表示的是数组,因此不能调尺寸。
•Arrays.asList()有时需要显示类型参数说明。
•必须使用Arrays.toString()打印数组内容。
•HashSet、HashMap可最快的获取元素。
•TreeSet、TreeMap按比较结果升序保存对象。
•LinkedHashSet、LinkedHashMap按添加顺序保存对象,同时可快速查找对象。
•List的操作依赖对象的equals()方法.
•subList返回的列表是原始列表本身的引用,不是副本。
•retainAll()求交集。
•toArray()可将任意Collection转成数组。
•LinkedList同时实现了栈、队列和双端队列的功能。

ListIterator迭代器

•更强大的迭代器,只能用于各种List类的访问。
•可以双向移动
•可以获得当前元素的前、后元素的索引
•可以使用set()方法修改元素
•可以通过listIterator()或listIterator(n)得到迭代器。

Set

•Set与Collection接口完全一样
•TreeSet将元素存储在红-黑树中

Iterable

•Collection是一个Iterable
•Iterable接口持有的方法是一个能产生Iterator的iterator()方法
•Foreach基于Iterable/数组实现
•如果需要提供迭代器,就先实现Iterable
•数组不是Iterable
•使用适配法(继承现有类,并实现Iterable接口)提供不同的Iterable供foreach使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值