java集合框架总结(一)List 迭代器 ,泛型

本文深入解析Java集合框架的顶层接口Collection及其子类List的两种实现:ArrayList与LinkedList。对比了两者在存储方式、访问速度及线程安全性上的差异,详细阐述了ArrayList作为动态数组的特性与LinkedList作为双向链表的优势,并介绍了迭代器的使用方法。

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

Java集合框架顶层接口 Collection

Collection 继承 java 的迭代接口Iterable ,

List 继承Collection    ArrayList 和 LinkList实现List 当然我们常用的是ArrayList 

1,ArrayList 可以说是一个大一点的数组,就像一个长方形的大盒子,大盒子里有顺序的放小盒子,每个盒子放一个元素,每个 盒子上有数字就是下标,从0开始,可以有重复值,操作ArrayList的查询速度相比LinkList较快,应为有下标所以快吧,还有ArrayList是线程不安全的,在多线程中使用list的时候建议用Vector, 因为Vector绝大部分是用同步关键字(synchronized)修饰的

2,LinkList 就像大的容器,所有的数据都是用链子连起来的 ,没个数据下方都有两个下标,一个下标是前一个元素的下标,一个下标是自己的下标 同时是下一个元素的前一个下标(毕向东解释的,还画了图很清晰),它是无序的,增删速度相对于ArrayList较快。

还有就是迭代器(Iterator)上次面试问到,很尴尬,我居然不知道怎么说,今天特意看了个视频,老师讲的,迭代器是什么,迭代器就是遍历集合的一个方式,ArrayList,LinkList,HashSet,LinkHashSet,他们是不同的集合就好比是不同饮料,我们喝着味道不一样,但是喝他的方式都是一样的,这个迭代器就相当于喝他的方式。这个喝的方式是什么,

          Iterator<String> arrayIt = ArrayList.iterator();
         //hasNext();就是是否还有下一个  有下一个就返回true
          while(linkIt.hasNext()){//用while 循环方便简单,但是弊端就是循环完了arrayIt还在  用for就存在这种问题
              //打印下一个元素
              System.out.println(listIt.next());
          }

还有就是泛型, 泛型 字面意思就是广泛的类型(这么解释不知道合不合理,个人理解),在java中泛型是伪泛型,应为java编译后的class文件中是没有泛型的, 有泛型是为了编译通过,同一个类型做同一个类型的事。我表达能力有问题,希望指点。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值