解决方案

Java ArrayList 类(详解)

seo靠我 2023-09-22 22:36:07

ArrayList

一、ArrayList 是什么?二、Java ArrayList 方法三、案例演示结果:

一、ArrayList 是什么?

ArrayList 类是一个可以动态修改的数组,与普通数组的区SEO靠我别就是它是没有固定大小的限制,我们可以添加或删除元素。

ArrayList 继承了 AbstractList ,并实现了 List 接口。

ArrayList 类位于 java.util 包中,使用前需要SEO靠我引入它,语法格式如下:import java.util.ArrayList; // 引入 ArrayList 类ArrayList<E> objectName =new ArrayList<>(); SEO靠我 // 初始化

E

: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。

objectName: 对象名。

二、Java ArrayList 方法

Java ArrayList 常SEO靠我用方法列表如下:

方法描述add()将元素插入到指定位置的 arraylist 中addAll()添加集合中的所有元素到 arraylist 中clear()删除 arraylist 中的所有元素cloSEO靠我ne()复制一份 arraylistcontains()判断元素是否在 arraylistget()通过索引值获取 arraylist 中的元素indexOf()返回 arraylist 中元素的索引SEO靠我值removeAll()删除存在于指定集合中的 arraylist 里的所有元素remove()删除 arraylist 里的单个元素size()返回 arraylist 里元素数量isEmpty()SEO靠我判断 arraylist 是否为空subList()截取部分 arraylist 的元素set()替换 arraylist 中指定索引的元素sort()对 arraylist 元素进行排序toArraSEO靠我y()将 arraylist 转换为数组toString()将 arraylist 转换为字符串ensureCapacity()设置指定容量大小的 arraylistlastIndexOf()返回指定SEO靠我元素在 arraylist 中最后一次出现的位置retainAll()保留 arraylist 中在指定集合中也存在的那些元素containsAll()查看 arraylist 是否包含指定集合中的所SEO靠我有元素trimToSize()将 arraylist 中的容量调整为数组中的元素个数removeRange()删除 arraylist 中指定索引之间存在的元素replaceAll()将给定的操作内容SEO靠我替换掉数组中每一个元素removeIf()删除所有满足特定条件的 arraylist 元素forEach()遍历 arraylist 中每一个元素并执行特定操作

三、案例演示

import java.utSEO靠我il.ArrayList; import java.util.Comparator;/*** @Description: $ArrayList案例演示* @Author: dyq* @SEO靠我Date: $2021年2月3日*/ public class ArrayListTest {public static void main(String[] args) {// 初始SEO靠我化一个String类型的数组ArrayList<String> a = new ArrayList();// 设置 arraylist的容量大小 nsureCapacity() 方法将动态数组大小调整SEO靠我为可以存放 6 个元素。//Java 中的 ArrayList 可动态调整大小。也就是说,如果我们在 arraylist 中添加 3 个以上的元素,它将自动调整自身大小,a.ensureCapacitSEO靠我y(6);//add()方法增加a.add("妈妈");a.add("爸爸");a.add("哥哥");a.add("姐姐");a.add("弟弟");a.add("妹妹");System.out.pSEO靠我rintln("数组内容为:"+a);System.out.println("元素数量为: "+a.size()); //返回 arraylist 里元素数量System.out.println("第SEO靠我二个元素:"+a.get(1)); // 访问第二个元素 ,注意:数组的索引值从 0 开始。a.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值System.out.prSEO靠我intln("修改后数组内容为:"+a);a.replaceAll(e -> e.toUpperCase()); // 将所有元素更改为大写System.out.println("数组内容为:"+a)SEO靠我;a.remove(3); // 删除第四个元素System.out.println("删除后数组内容为:"+a);/*removeIf() 方法的语法为:arraylist.removeIf(PreSEO靠我dicate<E> filter)注:arraylist 是 ArrayList 类的一个对象。filter - 过滤器,判断元素是否要删除* */// 删除名称中带有 哥 的元素a.removeIfSEO靠我(e -> e.contains("哥"));System.out.println("删除名称中带有 哥 的 ArrayList: " + a);//使用 for 来迭代数组列表中的元素System.SEO靠我out.println("用for循环遍历数组为:");for (int i = 0; i < a.size(); i++) {System.out.println(a.get(i));}SystemSEO靠我.out.println("使用 for-each 来迭代元素");for (String i: a) {System.out.println(i);}// 输出 clone() 方法所返回的值SysSEO靠我tem.out.println("clone() 返回值: " + a.clone());// 检查 Wiki 是否在这个数组中System.out.print("Wiki 是否存在于 arrayliSEO靠我st: ");System.out.println(a.contains("Wiki"));// 查找位置索引值为 Wiki 的元素int position1 = a.indexOf("Wiki");SEO靠我System.out.println("Wiki 的索引位置: " + position1); // 注意:数组的索引值从 0 开始。// 元素进行升序排列a.sort(Comparator.natuSEO靠我ralOrder());System.out.println("升序排序后: " + a); //升序排序后: [妈妈, 妹妹, 弟弟, 爸爸]// 降序a.sort(Comparator.reverSEO靠我seOrder());System.out.println("降序排序: " + a); //降序排序: [爸爸, 弟弟, 妹妹, 妈妈]// 将ArrayList转换为String类型/* StriSEO靠我ng list = a.toString();System.out.println("转String类型后: " + list);*/// 获取 妈妈 最后一次出现的位置int position = SEO靠我a.lastIndexOf("妈妈");System.out.println("妈妈 最后出现的位置: " + position); //注意: Wiki已经 不在 arraylist 中若要查找 则SEO靠我会返回 -1// 调整容量为3 trimToSize() 方法可以删除未分配的空间并更改 ArrayList 的容量,使其等于 ArrayList 中的元素个数。a.trimToSize();SystSEO靠我em.out.println("ArrayList 1 大小: " + a.size());System.out.println("ArrayList 1: " + a);// 创建另一个动态数组ArSEO靠我rayList<String> a1 = new ArrayList<>();// 往动态数组中添加元素//a1.add("舅舅");a1.add("妈妈");a1.add("妹妹");System.SEO靠我out.println("ArrayList 2: " + a1);// 在a 和 a1 中保留公共的元素(取交集的意思)a1.retainAll(a);System.out.println("保留的SEO靠我元素: " + a1);// 检查动态数组1是否包含动态数组2 (包含与被包含的关系)boolean result1 = a.containsAll(a1);System.out.println("aSEO靠我 包含了a1 的所有元素: " + result1); //true// 检查数组2是否包含数组1boolean result2 = a1.containsAll(a);System.out.prinSEO靠我tln("a1 包含了 a 的所有元素: " + result2);//removeAll() 和 clear() 方法功能都是一样都。但是 clear() 方法的比 removeAll() 更常被用SEO靠我到,因为 clear() 比 removeAll() 更快,更高效。// 删除所有元素/* a.clear();System.out.println("所有 clear() 方法后: " + a);*SEO靠我//*// 删除所有元素a.removeAll(a);System.out.println("所有 removeAll() 方法后: " + a);*/// 删除元素 Wikiboolean resuSEO靠我lt = a.remove("Wiki");System.out.println("Wiki 是否被删除? " + result);System.out.println("修改后数组内容为:"+a);SEO靠我// 检查该数组是否为空result = a.isEmpty(); // falseSystem.out.println("数组 a 是否为空? " + result);// 元素位置为1到3 subSEO靠我List() 该 subList() 方法获取索引 1 到 3(不包括 3)元素 所以返回索引为1-2的数//System.out.println("元素位置为1到3 SubList: " + a.sSEO靠我ubList(1, 3));// 删除从索引值1到3的元素 removeRange() 方法是受保护的,所以如果要使用需要继承 ArrayList 类,继承后我们就可以使用 Main 类来创建一个动态SEO靠我数组。//removeRange() 方法不常用,我们通常可以使用 ArrayList subList() 和 ArrayList clear() 方法来实现删除元素。// 已经不用这个了 a.remSEO靠我oveRange(1, 3);a.subList(1, 3).clear();System.out.println("删除后的 ArrayList: " + a);} }

结果:

数组内容SEO靠我为:[妈妈, 爸爸, 哥哥, 姐姐, 弟弟, 妹妹] 元素数量为: 6 第二个元素:爸爸 修改后数组内容为:[妈妈, 爸爸, Wiki, 姐姐, 弟弟,SEO靠我 妹妹] 数组内容为:[妈妈, 爸爸, WIKI, 姐姐, 弟弟, 妹妹] 删除后数组内容为:[妈妈, 爸爸, WIKI, 弟弟, 妹妹] 删除名称中带SEO靠我有 哥 的 ArrayList: [妈妈, 爸爸, WIKI, 弟弟, 妹妹] 用for循环遍历数组为: 妈妈 爸爸 WIKI SEO靠我 弟弟 妹妹 使用 for-each 来迭代元素 妈妈 爸爸 WIKI 弟弟 妹妹SEO靠我 clone() 返回值: [妈妈, 爸爸, WIKI, 弟弟, 妹妹] Wiki 是否存在于 arraylist: false Wiki 的索引位置:SEO靠我 -1 升序排序后: [WIKI, 妈妈, 妹妹, 弟弟, 爸爸] 降序排序: [爸爸, 弟弟, 妹妹, 妈妈, WIKI] 妈妈 最后出现的位置: 3SEO靠我 ArrayList 1 大小: 5 ArrayList 1: [爸爸, 弟弟, 妹妹, 妈妈, WIKI] ArrayList 2: [妈妈, 妹妹]SEO靠我 保留的元素: [妈妈, 妹妹] a 包含了a1 的所有元素: true a1 包含了 a 的所有元素: false Wiki 是否被删SEO靠我除? false 修改后数组内容为:[爸爸, 弟弟, 妹妹, 妈妈, WIKI] 数组 a 是否为空? false 删除后的 ArrayList: [爸SEO靠我爸, 妈妈, WIKI]
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2