JavaSE入门集合进阶(一)day06

文章详细介绍了Java集合框架中的单列集合和双列集合,包括List、ArrayList、LinkedList、Set、HashSet、TreeSet等具体实现,并讨论了不同集合的特点,如ArrayList基于数组,适合索引查询;LinkedList基于链表,适合增删操作。此外,还阐述了遍历集合的几种方式,如迭代器、增强for循环和Lambda表达式,并提出了遍历过程中需要注意的问题,如并发修改异常的处理。
摘要由CSDN通过智能技术生成

一,集合类型

1.单列集合Collection

2.双列集合Map:每个元素包含两个值(键值对)

二,单列集合体系

1.List(元素是有序的,可重复的,有索引的)

(1)ArrayList

(2)LinkedList

2.Set

(1)HashSet:元素是无序的,不重复的,无索引

(2)LinkedHashSet:元素是有序的,不重复的,无索引

(3)TreeSet:元素按照大小默认升序排序,不重复的,无索引

三,Collection的遍历方式

1.迭代器遍历

(1)概述:是用来遍历集合的专用方法,在Java中迭代器的代表是Iterator

(2)Collection获取迭代器的方法:iterator()

(3)Iterator迭代器中常用方法

      ①hasNext():查询当前位置是否有元素存在

      ②next():获取当前位置的元素,并同时将迭代器对象指向下一个元素

2.增强for循环

格式:for(元素的数据类型 变量名:数组或者集合){}

3.Lambda表达式

格式:forEach(){}

4.集合遍历常见问题

(1)迭代器

      ①错误:使用迭代器遍历集合时,同时通过集合对象删除集合中的数据,程序就会出现并发修改异常的错误

      ②解决方法:用迭代器自己的删除方法

(2)增强for循环

      ①错误:增强for循环底层依赖迭代器,所以会和迭代器出现一样的错误

      ②无解决办法

(3)普通for循环

      ①错误:使用普通for循环,删除相同元素会出现漏删

      ②解决办法:从后往前遍历,然后删除或者正常遍历,在成功删除一个元素时,i--

四,List

1.List特有方法(List集合有索引)

(1)根据索引增加:add(int index,E element)

(2)根据索引删除:remove(int index)

(3)根据索引修改:set(int index,E element)

(4)根据索引查询:get(int index)

2.遍历方法:除了Collection的三种方法,List集合还特有普通for循环

3.ArrayList集合的底层原理

(1)ArrayList是基于数组实现的

(2)特点

      ①根据索引查询速度快

      ②删除效率低

      ③添加效率极低

(3)底层原理

      ①利用无参构造器创建集合的时候,会在底层创建一个默认长度为0的数组

      ②添加第一个元素时,底层会创建一个新的长度为10的数组

      ③存满时,会扩容1.5倍

      ④如果一次添加多个元素,扩容1.5倍还放不下,则新创建数组的长度以实际为准

(4)应用场景:根据索引查询数据,或者根据随机索引抽取数据,或者数据量不是很大的时候

4.LinkedList底层原理

(1)LinkedList是基于双向链表实现的

(2)特点

      ①查询速度慢

      ②增删速度相对快

      ③LinkedList新增了很多首尾操作的特有方法,所以对首尾元素进行增删改查速度是极快的

(3)应用场景

      ①符合队列结果的数据存储(先进先出,后进后出)

      ②符合堆栈结构的数据存储(先进后出,后进先出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值