java集合---尚硅谷

java集合---尚硅谷,第1张

java集合---尚硅谷

java集合—尚硅谷



Collection 接口 遍历原始 使用 的 是 迭代器 Iterator(迭代器)

1.Iterator 对象 称为 迭代器, 主要 用于 Collection 集合中的 元素
2. 实现了 Collection 接口 的 集合类 都有 一个 iterator(),用于 返回 实现了 Iterator 接口的对象
即可以返回 一个 迭代器
3. Iterator 仅用于 遍历集合 ,本身 不存放对象

迭代器的 原理 :

Iterator iterator(); 得到 一个 集合的 迭代器

通过 hashNext() 返回 是否为 ture 来判断 是否 还有 下一个元素

如果 返回 ture , 使用 next()
next() 作用 : 1. 指针下移 2. 将 下移的 集合位置 上的元素返回


注意点 : 在调用 iterator.next() 方法 之前 必须 调用 iterator. hasNext()进行检查,
如果不调用的 话 ,且 下一条 记录 无效 ,直接 调用 iteator.next() 就会 抛出 NoSuchElementExection异常

col.iterator();

如果还想再次遍历 ,需要 重置迭代器


Collection 接口 使用 增强 for循环 遍历 底层的话 还是使用 迭代器原理
在底层 new 了 一个 迭代器,然后使用 hashNext() 和 next() 进行输出

Collection 接口 使用 for循环 遍历


List 接口

  1. List 集合中的 元素 有序 (取出和添加顺序 一致 ) ,且可以重复
  2. List 集合中的 每个元素 都有对应的顺序索引, 即支持 索引。


ArrayList 底层原理 源码分析

底层是使用 数组实现的 线程不安全 add方法没有使用 线程安全修饰词

源码结论:

  1. ArrayList 底层维护了 一个 Object对象的 数组 ElementData
    transient Object[] elementData; //transient 修饰的 表示短暂的, 不会被序列化
  2. 当使用 默认构造器的时候 , elementData 数组对象 默认的初始 容量为0 ,当添加 元素的 时候,扩容为 原来的 1.5 倍。
  3. 当使用 指定大小 的 构造器的 时候, 初始的 elementData 数组对象 为 指定大小的容量, 当需要扩容的时候 扩容为 原来的 1.5倍

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5075122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存