Java 集合 ArrayList类使用教程,ArrayList常用方法,使用泛型广泛代替传入ArrayList参数,ArrayList 的几个练习题教程,ArrayList和LinkdeList区别 您所在的位置:网站首页 泛型集合类 Java 集合 ArrayList类使用教程,ArrayList常用方法,使用泛型广泛代替传入ArrayList参数,ArrayList 的几个练习题教程,ArrayList和LinkdeList区别

Java 集合 ArrayList类使用教程,ArrayList常用方法,使用泛型广泛代替传入ArrayList参数,ArrayList 的几个练习题教程,ArrayList和LinkdeList区别

2023-11-22 01:42| 来源: 网络整理| 查看: 265

ArrayList类解决对象数组的长度不可变的问题。 一、基本使用方法 1.基本创建方法 ArrayList arrayList = new ArrayList();

Note:

解决对象数组的长度不可变的问题。ArrayList E 表示泛型,规范ArrayList只能储存的数据类型 注意:泛型只能是引用类型Integer不能是基本类型int直接 sout arrayList 对象得到的是一个数组[], 因为ArrayList的父类AbstractList的父类AbstractCollection重写了toString 方法。 2. add(String str) 添加数据 arrayList.add("第一个String数据"); 3.get(index int)方法提取数据: arrayList.get(0);//获取第一个String数据 源码实现:

在这里插入图片描述

Note: 1. 之前定义的泛型为 String 因此只能添加 String类型的到ArrayList

3.总代码: package Java学习.Java高级.集合.ArrayList类; import java.util.ArrayList; /** * 1. 解决对象数组的长度不可变的问题。 * 2. ArrayList E 表示泛型,规范ArrayList只能储存的数据类型 * 注意:泛型只能是引用类型不能是基本类型 * 3. 直接 sout arrayList 对象得到的是一个数组[], * 因为ArrayList的父类AbstractList的父类AbstractCollection重写了toString 方法。 */ public class ArrayList类 { public static void main(String[] args) { //从 jdk 1.7 开始,右侧可以不用指定类型 ArrayList arrayList = new ArrayList(); System.out.println(arrayList); arrayList.add("第一个String元素"); System.out.println(arrayList); arrayList.get(0); System.out.println(arrayList.get(0)); } }

output:

[] [第一个String元素] 第一个String元素

二、ArrayList中其他常见方法 1,remove(index int )移除索引的对象 System.out.println("移除的元素是: "+arrayList.remove(0)); //移除第一个对象,并返回该对象

输出: 移除的元素是: 第一个String元素

1.2 注意remove() 存在返回值,返回被删除的对象。

在这里插入图片描述

2. size() 获取集合arrayList的长度类似 length arrayList.size(); 2.2 可用于遍历。和length相似 package Java学习.Java高级.集合.ArrayList类; import java.util.ArrayList; public class ArrayList的遍历 { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add("First"); arrayList.add("Second"); arrayList.add("Third"); for (int i = 0; i public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add(1); arrayList.add(2); arrayList.add(3); for (int i = 0; i public static void main(String[] args) { ArrayList arrayList = new ArrayList(); for (int i = 0; i System.out.println(arrayList.get(i)); } } }

output: 30 15 26 23 21 30

提示: new Random().nextInt(32) 会随机生成 0-32 的数字,+ 1 就是 0 -33 的数字 练习题2. 定义一个打印集合的方法,ArrayList 类型作为参数,打印格式为 {元素@元素@元素} package Java学习.Java高级.集合.ArrayList类; import java.util.ArrayList; /** * 定义一个打印集合的方法,ArrayList 类型作为参数,打印格式为 {元素@元素@元素} */ public class Test3 { /** * 泛型的作用: * 1.规范ArrayList储存的数据类型 * 2.使用泛型广泛代替传入ArrayList参数类型,实现重载功能, * 3.同理替代传入的数组类型 * * @param arrayList * @param */ private void formatPrint(ArrayList arrayList) { for (int i = 0; i System.out.print("{" + arrayList.get(i) + "@"); } else if (i > 0 && i System.out.print(arrayList.get(i) + "}"); } } } public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add(1); arrayList.add(2); arrayList.add(3); new Test3().formatPrint(arrayList); } }

output: {1@2@3}

注意: * 泛型的作用: * 1.规范ArrayList储存的数据类型 * 2.使用泛型广泛代替传入ArrayList参数类型,实现重载功能, * 3.同理替代传入的数组类型 练习题3:一个大集合中存在一定的int数字,写出一个方法,筛选出 中的偶数并放到一个新的集合中. package Java学习.Java高级.集合.ArrayList类; import java.util.ArrayList; /** * 题目: * 一个大集合中存在一定的int数字,写出一个方法,筛选出其中的偶数并放到一个新的集合中 */ public class Test4 { private ArrayList getEventNumberArrayList(ArrayList arrayList) { ArrayList eventNumberArrayList = new ArrayList(); for (int i = 0; i eventNumberArrayList.add(arrayList.get(i)); } } return eventNumberArrayList; } public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add(1); arrayList.add(2); arrayList.add(3); arrayList.add(4); arrayList.add(5); arrayList.add(6); arrayList.add(7); ArrayList eventNumberArrayList = new Test4().getEventNumberArrayList(arrayList); System.out.println(eventNumberArrayList); } }

output: [2, 4, 6]

六、拓展 1.ArrayList 的底层是一个数组,数组查询快,增删慢。

数组删除一个元素要 1.new 一个新的长度为原数组-1 的新数组 2.复制原来数组的其他元素 3.把新数组的首地址赋值给原来的变量 4.垃圾回收机制清理原来的数组 在这里插入图片描述

2.但是如果你要实现增删多的业务建议使用链表结构的LinkedList

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有