做网站写概要设计,wordpress 微博链接地址,学会网站建设的重要性,中国工程机械网前言#xff1a;ArrayList是Java中最常用的动态数组实现之一#xff0c;它提供了便捷的操作接口和灵活的扩展能力#xff0c;使得在处理动态数据集合时非常方便。本文将深入探讨Java中ArrayList的实现原理、常用操作以及一些使用场景。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨… 前言ArrayList是Java中最常用的动态数组实现之一它提供了便捷的操作接口和灵活的扩展能力使得在处理动态数据集合时非常方便。本文将深入探讨Java中ArrayList的实现原理、常用操作以及一些使用场景。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 在文章开始之前先让我们看一下本文的大致内容 目录
1.认识ArrayList
2.ArrayList的创建
1使用默认构造函数创建一个空的 ArrayList
2使用带有初始容量的构造函数创建 ArrayList
3使用 ArrayList(Collection c) 构造函数创建 ArrayList 的简单示例
3.ArrayList的遍历
遍历ArrayList的方式 1使用for循环 2使用增强型for循环 3使用迭代器
4.ArrayList常用API 1boolean add(E e)——尾插 e 2void add(int index, E element)——将 e 插入到 index 位置 3boolean addAll(Collection c)——尾插 c 中的元素 4E remove(int index)——删除 index 位置元素 5boolean remove(Object o)——删除遇到的第一个 o 6E get(int index)——获取下标 index 位置元素 7E set(int index, E element)——将下标 index 位置元素设置为 element 8void clear()——清空 9boolean contains(Object o)——判断 o 是否在线性表中 10int indexOf(Object o)——返回第一个 o 所在下标 11int lastIndexOf(Object o)——返回最后一个 o 的下标 12List subList(int fromIndex, int toIndex)——截取部分 list 1.认识ArrayList 在正式的学习ArrayList之前我们需要了解一下什么是Java中的ArrayList顺序表 ArrayList是Java中的一个动态数组类它实现了List接口可以存储任意类型的对象并且大小可以动态地调整。ArrayList允许在列表的任意位置进行元素的插入、删除、获取等操作而且它还能自动扩展内部数组的容量以适应存储需求的增长。 ArrayList是一个普通的类实现了List接口具体框架图如下 读到这就会有读者发问了ArrayList到底是怎么去实现这些功能的呢它的底层原理到底是怎么样的呢答案如下
ArrayList的实现原理 ArrayList的内部实现是基于数组的它使用一个Object类型的数组来存储元素。当创建一个ArrayList实例时会初始化一个默认大小的数组当数组容量不足以存储新的元素时ArrayList会自动扩展数组的大小通常会将当前数组的容量增加一倍并将原来的元素复制到新数组中当然其他的操作也是类似。 通过上面的描述我们就大致的了解了Java中ArrayList顺序表了。 2.ArrayList的创建 了解完了Java中ArrayList顺序表那么我们如何去创建并使用它呢在Java中给我们提供了三种创建ArrayList顺序表的方式。
创建方式解释ArrayList()无参构造ArrayList(int initialCapacity)指定顺序表初始容量ArrayList(Collection? extends E c)利用其他 Collection 构建 ArrayList
现在让我们使用三种不同的方式来创建一下ArrayList顺序表
1使用默认构造函数创建一个空的 ArrayList
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个空的 ArrayListArrayListString list1 new ArrayList();// 添加元素到 ArrayList这里可以先看一下就可以list1.add(Apple);list1.add(Banana);list1.add(Orange);// 打印 ArrayListSystem.out.println(ArrayList 1: list1);}
}2使用带有初始容量的构造函数创建 ArrayList
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个具有初始容量的 ArrayListArrayListInteger list2 new ArrayList(5);// 添加元素到 ArrayList这里先看一下就可以list2.add(10);list2.add(20);list2.add(30);// 打印 ArrayListSystem.out.println(ArrayList 2: list2);}
}3使用 ArrayList(Collection? extends E c) 构造函数创建 ArrayList 的简单示例
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个包含初始元素的集合ListString originalList new ArrayList();originalList.add(Apple);originalList.add(Banana);originalList.add(Orange);// 使用原始集合创建一个新的 ArrayListArrayListString newList new ArrayList(originalList);// 打印新的 ArrayListSystem.out.println(New ArrayList: newList);}
}这样我们就了解了如何在Java中创建ArrayList顺序表了。 3.ArrayList的遍历 在认识ArrayList的段落中我们知道了ArrayList的底层是一个动态数组既然是数组的话我们是不是可以像遍历数组一样遍历ArrayList呢答案是——是的但是在此之上我们还可以使用迭代器对其进行遍历。
遍历ArrayList的方式 1使用for循环
for (int i 0; i list.size(); i) {int element list.get(i);System.out.println(element);
}2使用增强型for循环
for (int element : list) {System.out.println(element);
}3使用迭代器
IteratorInteger iterator list.iterator();
while (iterator.hasNext()) {int element iterator.next();System.out.println(element);
}以上就是三种遍历Java中ArrayList的方式每种方式都有其适用的场景我们需要根据实际需求选择最合适的方式来遍历ArrayList对象。 4.ArrayList常用API 在上文中我们大致的了解了什么是Java中的ArrayList以及学会了创建和遍历Java中的ArrayList现在让我们学习一下Java中提供给我们的ArrayList中的常用API。
先让我们看一下有哪些常用的ArrayList中的API
常用方法解释boolean add(E e)尾插 evoid add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection? extends E c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一个 oE get(int index)获取下标 index 位置元素E set(int index, E element)将下标 index 位置元素设置为 elementvoid clear()清空boolean contains(Object o)判断 o 是否在线性表中int indexOf(Object o)返回第一个 o 所在下标int lastIndexOf(Object o)返回最后一个 o 的下标ListE subList(int fromIndex, int toIndex)截取部分 list 这里我们一个一个的进行实例演示 1boolean add(E e)——尾插 e
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个空的 ArrayListArrayListString list new ArrayList();// 向 ArrayList 中添加元素list.add(Apple);// 打印添加操作的结果System.out.println(list); // 输出Apple}
}在这个示例中我们创建了一个空的 ArrayList然后使用 add() 方法向其中添加了一个元素 Apple最后打印了list。 2void add(int index, E element)——将 e 插入到 index 位置
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个空的 ArrayListArrayListString list new ArrayList();// 向 ArrayList 中指定位置添加元素list.add(Apple);list.add(Banana);list.add(Orange);System.out.println(list); // 输出[Apple, Banana, Orange]list.add(1, Grapes); // 在索引 1 处添加元素 Grapes// 打印添加后的 ArrayListSystem.out.println(list); // 输出[Apple, Grapes, Banana, Orange]}
}在这个示例中我们创建了一个空的 ArrayList然后使用 add() 方法向其中添加了三个元素Apple、Banana 和 Orange。接着我们使用 add(int index, E element) 方法在索引 1 处添加了元素 Grapes。最后我们打印了添加后的 ArrayList可以看到 Grapes 被成功添加到了索引 1 处。 3boolean addAll(Collection? extends E c)——尾插 c 中的元素
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个空的 ArrayListArrayListString list1 new ArrayList();list1.add(Apple);list1.add(Banana);// 创建一个包含元素的集合ListString elementsToAdd Arrays.asList(Orange, Grapes);// 使用 addAll() 方法将集合中的元素添加到 ArrayList 中list1.addAll(elementsToAdd); // 打印最终的 ArrayListSystem.out.println(list1); // 输出[Apple, Banana, Orange, Grapes]}
}在这个示例中我们创建了一个空的 ArrayList然后向其中添加了两个元素Apple 和 Banana。接着我们创建了一个包含两个元素的集合 elementsToAdd。最后我们使用 addAll() 方法将集合 elementsToAdd 中的元素添加到 ArrayList 中。 4E remove(int index)——删除 index 位置元素
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 打印原始的 ArrayListSystem.out.println(Original ArrayList: list); // 输出[Apple, Banana, Orange]// 移除索引为 1 处的元素String removedElement list.remove(1);// 打印被移除的元素和最终的 ArrayListSystem.out.println(Removed element: removedElement); // 输出BananaSystem.out.println(Final ArrayList: list); // 输出[Apple, Orange]}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 remove(int index) 方法移除了索引为 1 处的元素 Banana。最后我们打印了被移除的元素和最终的 ArrayList可以看到 Banana 被成功移除了。 5boolean remove(Object o)——删除遇到的第一个 o
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 打印原始的 ArrayListSystem.out.println(Original ArrayList: list); // 输出[Apple, Banana, Orange]// 移除元素 Bananalist.remove(Banana);// 打印最终的 ArrayListSystem.out.println(list); // 输出[Apple, Orange]}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 remove(Object o) 方法移除了元素 Banana。最后我们打印了最终的 ArrayList可以看到 Banana 被成功移除了。 6E get(int index)——获取下标 index 位置元素
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 获取索引为 1 处的元素String element list.get(1);// 打印获取到的元素System.out.println(element); // 输出Banana}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 get(int index) 方法获取了索引为 1 处的元素。最后我们打印了获取到的元素可以看到获取操作成功返回了 Banana 这个元素。 7E set(int index, E element)——将下标 index 位置元素设置为 element
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 打印原始的 ArrayListSystem.out.println(list); // 输出[Apple, Banana, Orange]// 将索引为 1 处的元素替换为 Grapeslist.set(1, Grapes);// 打印最终的 ArrayListSystem.out.println(list); // 输出[Apple, Grapes, Orange]}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 set(int index, E element) 方法将索引为 1 处的元素 Banana 替换为 Grapes。最后我们打印了最终的 ArrayList可以看到替换操作成功地将 Banana 替换为了 Grapes。 8void clear()——清空
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 打印原始的 ArrayListSystem.out.println(list); // 输出[Apple, Banana, Orange]// 使用 clear() 方法清空 ArrayListlist.clear();// 打印清空后的 ArrayListSystem.out.println(list); // 输出[]}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 clear() 方法清空了该列表。最后我们打印了清空后的 ArrayList可以看到列表中不再包含任何元素。 9boolean contains(Object o)——判断 o 是否在线性表中
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 检查 ArrayList 是否包含元素 Bananaboolean containsBanana list.contains(Banana);// 打印检查结果System.out.println(containsBanana); // 输出true}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 contains(Object o) 方法检查列表中是否包含元素 Banana。最后我们打印了检查结果可以看到列表中确实包含 Banana 元素。 10int indexOf(Object o)——返回第一个 o 所在下标
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);// 获取元素 Banana 在 ArrayList 中的索引int index list.indexOf(Banana);// 打印索引值System.out.println(index); // 输出1}
}在这个示例中我们创建了一个包含三个元素的 ArrayList然后使用 indexOf(Object o) 方法获取了元素 Banana 在列表中的索引。最后我们打印了索引值可以看到 Banana 元素的索引是 1。 11int lastIndexOf(Object o)——返回最后一个 o 的下标
import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);list.add(Banana);// 获取元素 Banana 在 ArrayList 中的最后一个索引int lastIndex list.lastIndexOf(Banana);// 打印最后一个索引值System.out.println(lastIndex); // 输出3}
}在这个示例中我们创建了一个包含四个元素的 ArrayList其中包含两个 Banana 元素。然后使用 lastIndexOf(Object o) 方法获取了元素 Banana 在列表中的最后一个索引。最后我们打印了最后一个索引值可以看到最后一个 Banana 元素的索引是 3。 12ListE subList(int fromIndex, int toIndex)——截取部分 list
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个包含几个元素的 ArrayListArrayListString list new ArrayList();list.add(Apple);list.add(Banana);list.add(Orange);list.add(Grapes);list.add(Kiwi);// 获取子列表包括索引 1 到 3 的元素但不包括索引 3ListString subList list.subList(1, 3);// 打印子列表System.out.println(subList); // 输出[Banana, Orange]}
}在这个示例中我们创建了一个包含五个元素的 ArrayList然后使用 subList(int fromIndex, int toIndex) 方法获取了子列表包括索引 1 到 3 的元素但不包括索引 3。最后我们打印了子列表可以看到子列表包含了 Banana 和 Orange 元素。
注意 在使用ListE subList(int fromIndex, int toIndex)方法的时候我们对获取的子列表进行修改的时候原来的列表也会被修改。 这样我们就大致的了解了Java中ArrayList的常用API了。 以上就是本篇文章的全部内容了~~~ 文章转载自: http://www.morning.pclgj.cn.gov.cn.pclgj.cn http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn http://www.morning.pamdeer.com.gov.cn.pamdeer.com http://www.morning.xwzsq.cn.gov.cn.xwzsq.cn http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn http://www.morning.pigcamp.com.gov.cn.pigcamp.com http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn http://www.morning.xclgf.cn.gov.cn.xclgf.cn http://www.morning.ysskn.cn.gov.cn.ysskn.cn http://www.morning.bnkcl.cn.gov.cn.bnkcl.cn http://www.morning.pmrlt.cn.gov.cn.pmrlt.cn http://www.morning.jzccn.cn.gov.cn.jzccn.cn http://www.morning.simpliq.cn.gov.cn.simpliq.cn http://www.morning.qphcq.cn.gov.cn.qphcq.cn http://www.morning.pxrfm.cn.gov.cn.pxrfm.cn http://www.morning.fqklt.cn.gov.cn.fqklt.cn http://www.morning.mhnb.cn.gov.cn.mhnb.cn http://www.morning.ggnrt.cn.gov.cn.ggnrt.cn http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn http://www.morning.pqqzd.cn.gov.cn.pqqzd.cn http://www.morning.pxlql.cn.gov.cn.pxlql.cn http://www.morning.fncgw.cn.gov.cn.fncgw.cn http://www.morning.njfgl.cn.gov.cn.njfgl.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.nlgyq.cn.gov.cn.nlgyq.cn http://www.morning.brbmf.cn.gov.cn.brbmf.cn http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn http://www.morning.hnhgb.cn.gov.cn.hnhgb.cn http://www.morning.qnftc.cn.gov.cn.qnftc.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.gqjzp.cn.gov.cn.gqjzp.cn http://www.morning.rqzyz.cn.gov.cn.rqzyz.cn http://www.morning.gcszn.cn.gov.cn.gcszn.cn http://www.morning.wqgr.cn.gov.cn.wqgr.cn http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn http://www.morning.rmppf.cn.gov.cn.rmppf.cn http://www.morning.mmynk.cn.gov.cn.mmynk.cn http://www.morning.lztrt.cn.gov.cn.lztrt.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.hgscb.cn.gov.cn.hgscb.cn http://www.morning.pkmw.cn.gov.cn.pkmw.cn http://www.morning.kchwr.cn.gov.cn.kchwr.cn http://www.morning.jghqc.cn.gov.cn.jghqc.cn http://www.morning.zdnrb.cn.gov.cn.zdnrb.cn http://www.morning.tstwx.cn.gov.cn.tstwx.cn http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn http://www.morning.zpqlf.cn.gov.cn.zpqlf.cn http://www.morning.nywrm.cn.gov.cn.nywrm.cn http://www.morning.xcdph.cn.gov.cn.xcdph.cn http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn http://www.morning.ysmw.cn.gov.cn.ysmw.cn http://www.morning.kbqbx.cn.gov.cn.kbqbx.cn http://www.morning.lmhh.cn.gov.cn.lmhh.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.kjmws.cn.gov.cn.kjmws.cn http://www.morning.gycyt.cn.gov.cn.gycyt.cn http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn http://www.morning.dbsch.cn.gov.cn.dbsch.cn http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn http://www.morning.kvzvoew.cn.gov.cn.kvzvoew.cn http://www.morning.pphgl.cn.gov.cn.pphgl.cn http://www.morning.pamdeer.com.gov.cn.pamdeer.com http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn http://www.morning.qtltg.cn.gov.cn.qtltg.cn http://www.morning.tscsd.cn.gov.cn.tscsd.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.mnqz.cn.gov.cn.mnqz.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.mqwnp.cn.gov.cn.mqwnp.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.zpstm.cn.gov.cn.zpstm.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.rnpt.cn.gov.cn.rnpt.cn