【Collection集合List集合】
1.Collection集合
1.1集合体系结构【记忆】
集合类的特点
提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变
集合类的体系图
1.2Collection集合概述和基本使用
Collection集合概述
- 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
- JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
Collection集合基本使用
public class CollectionDemo01 {public static void main(String[] args) {//创建Collection集合的对象Collection<String> c = new ArrayList<String>();//添加元素:boolean add(E e)c.add("hello");c.add("world");c.add("java");//输出集合对象System.out.println(c);} }
1.3Collection集合的常用方法
方法名 | 说明 |
---|---|
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 从集合中移除指定的元素 |
void clear() | 清空集合中的元素 |
boolean contains(Object o) | 判断集合中是否存在指定的元素 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中元素的个数 |
1.4Collection集合的遍历
- 迭代器的介绍
- 迭代器,集合的专用遍历方式
- Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
- 迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的
- Collection集合的遍历
public class IteratorDemo {public static void main(String[] args) {//创建集合对象Collection<String> c = new ArrayList<>();//添加元素c.add("hello");c.add("world");c.add("java");c.add("javaee");//Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到Iterator<String> it = c.iterator();//用while循环改进元素的判断和获取while (it.hasNext()) {String s = it.next();System.out.println(s);}}
}
2.List集合
2.1List集合概述和特点【记忆】
- List集合概述
- 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
- 与Set集合不同,列表通常允许重复的元素
- List集合特点
- 有索引
- 可以存储重复元素
- 元素存取有序
2.2List集合的特有方法
方法名 | 描述 |
---|---|
void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
2.4并发修改异常
出现的原因
迭代器遍历的过程中,通过集合对象修改了集合中的元素,造成了迭代器获取元素中判断预期修改值和实际修改值不一致,则会出现:ConcurrentModificationException
解决的方案
用for循环遍历,然后用集合对象做对应的操作即可
示例代码
public class ListDemo {public static void main(String[] args) {//创建集合对象List<String> list = new ArrayList<String>();//添加元素list.add("hello");list.add("world");list.add("java");//遍历集合,得到每一个元素,看有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现 // Iterator<String> it = list.iterator(); // while (it.hasNext()) {// String s = it.next(); // if(s.equals("world")) {// list.add("javaee"); // } // }for(int i=0; i<list.size(); i++) {String s = list.get(i);if(s.equals("world")) {list.add("javaee");}}//输出集合对象System.out.println(list);} }
2.5列表迭代器
ListIterator介绍
- 通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代器
- 用于允许程序员沿任一方向遍历的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
示例代码
public class ListIteratorDemo {public static void main(String[] args) {//创建集合对象List<String> list = new ArrayList<String>();//添加元素list.add("hello");list.add("world");list.add("java");//获取列表迭代器ListIterator<String> lit = list.listIterator();while (lit.hasNext()) {String s = lit.next();if(s.equals("world")) {lit.add("javaee");}}System.out.println(list);} }
2.6增强for循环
定义格式
for(元素数据类型 变量名 : 数组/集合对象名) {循环体; }
示例代码
public class ForDemo {public static void main(String[] args) {int[] arr = {1,2,3,4,5};for(int i : arr) {System.out.println(i);}System.out.println("--------");String[] strArray = {"hello","world","java"};for(String s : strArray) {System.out.println(s);}System.out.println("--------");List<String> list = new ArrayList<String>();list.add("hello");list.add("world");list.add("java");for(String s : list) {System.out.println(s);}System.out.println("--------");//内部原理是一个Iterator迭代器/*for(String s : list) {if(s.equals("world")) {list.add("javaee"); //ConcurrentModificationException}}*/} }
3.数据结构
3.1数据结构之栈和队列【记忆】
栈结构
先进后出
队列结构
先进先出
3.2数据结构之数组和链表【记忆】
数组结构
查询快、增删慢
队列结构
查询慢、增删快
4.List集合的实现类
4.1List集合子类的特点【记忆】
ArrayList集合
底层是数组结构实现,查询快、增删慢
LinkedList集合
底层是链表结构实现,查询慢、增删快
4.2LinkedList集合的特有功能
特有方法
方法名 说明 public void addFirst(E e) 在该列表开头插入指定的元素 public void addLast(E e) 将指定的元素追加到此列表的末尾 public E getFirst() 返回此列表中的第一个元素 public E getLast() 返回此列表中的最后一个元素 public E removeFirst() 从此列表中删除并返回第一个元素 public E removeLast() 从此列表中删除并返回最后一个元素
【Collection集合List集合】相关推荐
- CSV-03- csv 读写框架支持数组、Map、Collection 等常见集合
集合类 有时候对象中会包含数组.Map.Collection 等常见集合. 为了存储的便利性,默认提供集合的相关支持. 特性和普通字段保持一致,如果指定注解转换,则以注解为准. 使用示例 UserCo ...
- 15、mybatis一对多关联查询 collection定义关联集合封装规则及懒加载
文章目录 1.collection定义关联集合封装规则单步查询 1).Dept增加集合属性 2).DeptMapper增加查询接口 3).DeptMapper.xml增加collection配置 4) ...
- Collection(单列集合)
概述: 是一个单列集合的顶层接口,定义了单列集合都拥有的共性功能,他的功能自己不能使用,必须要通过实现类来使用,学习共性功能,通过实现类ArrayList来使用功能其实就是对集合存放的数据进行操作的行 ...
- 集合 (一) ----- 集合的基本概念与Collection集合详解
相关文章: <集合 (一) ----- 集合的基本概念与Collection集合详解> <集合 (二) ----- Map集合详解> 文章目录 集合的基本概念 一.集合的分类 ...
- 正则,异常、Collection、List集合
一,正则表达式 1,概述 正则表达式就是由一些特定的字符组成,代表的是一个规则. 2,书写规则 public boolean matches(String regex) 判断字符串是否匹配正则表达式, ...
- Java 集合——List集合
Collection接口是集合的老祖宗,定义了接口的基本方法. List是Collection接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩展,List集合里的元素是可 ...
- 【Groovy】集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )
文章目录 一.集合中有集合元素时调用 flatten 函数拉平集合元素 二.完整代码示例 一.集合中有集合元素时调用 flatten 函数拉平集合元素 在上一篇博客 [Groovy]集合遍历 ( 操作 ...
- set集合判断集合中是否有无元素_第八章 集合
1. Java集合体系结构(List.Set.Collection.Map的区别和联系) Collection 接口存储一组不唯一,无序的对象 List 接口存储一组不唯一,有序(插入顺序)的对象 S ...
- java集合替换集合_Java集合–您必须知道的13件事
java集合替换集合 Java Collections Framework is one of the core parts of the Java programming language. Col ...
- 14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
本篇主要是集合框架基础和List集合,Map集合等等后续更 集合 14.1 集合框架 14.1.1 概念 14.1.2 集合架构 14.2 Collection接口 14.2.1 常用方法 14.3 ...
最新文章
- Go基础编程:作用域
- react引入多个图片_重新引入React:v16之后的每个React更新都已揭开神秘面纱。
- 竞拍AI教父Hinton
- Matlab字符串的基本操作
- PostgreSQL扫盲教程
- Nginx server之Nginx作为反向代理服务器
- IBM、Google、Oracle三巨头的公有云之殇(下)
- 长话无需短说 讯飞输入法超长语音输入不限时
- AM3352启动分析:
- 6. HBase优化
- ps4html5播放器,PS4终获得全新媒体播放器 允许从PC或U盘串流媒体
- Java 之未支付订单30分钟后自动取消
- 招商银行的“金融+知识”:知其然,更要知其所以然
- 刷屏的海底捞超级APP究竟是怎样与阿里云合作的
- Educational Codeforces Round 117 (Rated for Div. 2)题解(A~D)
- oracle同步数据adg_[adg数据库同步机制]三分钟读懂Oracle数据库容灾架之DataGuard
- 盛世昊通拼车车通证,以共享经济实现行业颠覆
- 搜狗输入法5.0_马化腾又出手!将全资收购搜狗,后者盘前疯涨超45%
- 图解大数据 | 综合案例-使用Spark分析挖掘零售交易数据
- 翻译:VESA Adaptive-Sync / AMD FreeSync / VRR 白皮书
热门文章
- Vim搜索以及取消搜索后的高亮
- 淘派上架预告 | 烤仔潮物作品 12.28 20:00开售
- 理特分析发现,韩国处于5G领导者地位
- 第一台计算机的相关情况,世界上第一台计算机诞生于1945年。
- 链表的基本操作(C/C++)
- 多元正态产生随机数python_【python讲概率】S05E06 多元正态分布及其性质
- 真牛逼!玻璃大王曹德旺捐资100亿办大学!这才是人才!
- 打造沉浸式游戏体验,戴尔及ALIENWARE推出全新AMD锐龙游戏本
- 各数据库下生成UUID的方法
- 大学计算机考试纲要,大学计算机考试纲要