Java中ArrayList集合的常用方法大全
作者:初识Java小木南 发布时间:2023-09-01 15:23:30
ArrayList集合的创建
非泛型
创建ArrayList集合对象,可以添加任意Object子类元素至集合
//非泛型创建的ArrayList集合对象可以保存任何类型的值
ArrayList list = new ArrayList();
list.add("str");//存入String类型数据
list.add(23);//存入int类型数据
list.add(2.5);//存入double类型数据
list.add('c');//存入char类型数据
泛型
采用泛型创建ArrayList集合对象,只能添加泛型数据至集合
//泛型创建的ArrayList集合对象,只能保存泛型数据
ArrayList<String> list1 = new ArrayList<String>();
//后面的泛型类型可以省略
ArrayList<String> list2 = new ArrayList<>();
list1.add("str1");
list1.add("str2");
//list1.add(23); 出现编译错误,list1只能存放String类型数据
ArrayList集合的初始化
无参构造
使用无参构造方法,按照空数组的方式初始化内部数组elementData
//内部数组为空
ArrayList<String> list = new ArrayList<String>();
//调用add()方法,空数组的长度变为10
list.add("str");
有参构造
使用有参构造方法,按照指定的容量,初始化内部数组elementData
//内部数组长度为38
ArrayList<String> list02 = new ArrayList<String>(38);
常用方法
1.add()方法
作用:给集合添加元素;
参数:①需要添加的元素②下标位置,需要添加的元素;
返回:boolean类型值;
ArrayList<String> list = new ArrayList<String>();
// 添加元素(默认添加至集合的末尾)
list.add("str1");
list.add("str2");
System.out.println(list);//输出:[str1, str2]
// 添加元素至指定位置(list"头部"添加元素str3)
list.add(0,"str3");
System.out.println(list);//输出:[str3, str1, str2]
2.addAll()方法
作用:给集合添加集合;
参数:①需要添加的集合;②下标位置,需要添加的集合;
返回:boolean类型值;
ArrayList<String> list1 = new ArrayList<String>();
list1.add("str1");
list1.add("str2");
ArrayList<String> list2 = new ArrayList<String>();
list2.add("str01");
list2.add("str02");
// 添加集合(默认添加至集合的末尾)
list1.addAll(list2);
System.out.println(list1);//输出:[str1, str2, str01, str02]
// 添加集合至指定位置(list1"头部"添加集合list2)
list1.add(0,list2);
//输出:[str01, str02, str1, str2, str01, str02]
System.out.println(list1);
3.get()方法
作用:根据下标获取集合中的元素;
参数:下标位置(0——(list.size()-1)之间);
返回:集合中的元素;
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
String str=list.get(2);
System.out.println(str);//输出:str3
4.size()方法
作用:获取集合中的元素个数;
参数:无;
返回:int类型,集合的元素个数;
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
int n=list.size();
System.out.println(n);//输出:4
5.clear()方法
作用:清除集合中的所有元素;
参数:无;
返回:无;
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
System.out.println(list);//输出:[str1, str2]
list.clear();
System.out.println(list);//输出:[]
6.contains()方法
作用:判断集合内是否存在指定元素;
参数:指定元素;
返回:boolean(true表示存在,false表示不存在);
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
System.out.println(list.contains("str2"));//输出:true
System.out.println(list.contains("str5"));//输出:false
7.indexof()方法
作用:查找集合内的元素;
参数:需要查找的元素;
返回:int类型(找到返回下标,未找到返回-1);
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
System.out.println(list.indexof("str2"));//输出:1
System.out.println(list.indexof("str5"));//输出:-1
8.remove()方法
作用:删除集合内的元素;
参数:①指定下标位置;②指定元素;
返回:①指定下标位置删除返回删除的元素值;②指定元素输出返回ture;
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
System.out.println(list.remove(1));//输出:str2
System.out.println(list.remove("str4"));//输出:true
9.set()方法
作用:将指定下标位置改为指定元素;
参数:指定下标,指定元素;
返回:修改前的原值;
ArrayList<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
System.out.println(list);//输出:[str1, str2, str3, str4]
System.out.println(list.set(1,"str5"));//输出:str2
System.out.println(list);//输出:[str1, str5, str3, str4]
10.toArray()方法
作用:将集合转换为数组;
参数:①无参;②其他类型的数组对象;
返回:①Object[ ];②指定类型的数组;
// 快速创建并初始化一个List集合
// 该集合对象类型为Arrays类的内部类ArrayList
List<String> list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6");
// 将集合内所有元素添加至heroList02
ArrayList<String> list2 = new ArrayList<String>();
list2.addAll(list1);
Object[] array01 = list2.toArray(); //转换成Object数组
String[] array02 = list2.toArray(new String[0]); // 转换成String类型数组
11.subList()方法
作用:在原集合中截取子集合;
参数:开始下标, 结束下标;
返回:子集合;
List<String> list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6");
ArrayList<String> list2 = new ArrayList<String>();
list2.addAll(list1);
//截取(0,3),即为0,1,2三个元素,区间[0,3)
List<String> result= list2.subList(0, 3);
System.out.println(result);//输出:[str1, str2, str3]
12.sort()方法
作用:对集合中的元素排序;
参数:Comparator比较器接口实现类对象;
返回:无;
List<String> list1 = Arrays.asList("str8", "str4", "str6", "str3", "str2", "str9");
ArrayList<String> list = new ArrayList<String>();
list.addAll(list1);
//new Comparator<String>()采用了匿名类对象,直接实现compare()方法
list.sort(new Comparator<String>() {
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
System.out.println(list);//输出:[str2, str3, str4, str6, str8, str9]
ArrayList集合的遍历
List<String> list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6");
ArrayList<String> list = new ArrayList<String>();
list.addAll(list1);
// 方式1:使用for循环遍历集合list
for (int i = 0, len = list.size(); i < len; i++) {
//输出:str1,str2,str3,str4,str5,str6,
System.out.print(list.get(i)+",");
}
System.out.println("-----------------------------------");
// 方式2:使用迭代器遍历集合list
// (1)获取当前集合对象的迭代器对象
Iterator<String> it = list.iterator();
// (2)使用迭代器遍历每个元素
while (it.hasNext()) { //判断集合是否有下一个元素
//输出:str1,str2,str3,str4,str5,str6,
System.out.print(it.next()+",");//获取集合的下一个元素
}
System.out.println("-----------------------------------");
// 方式3 : foreach遍历list
for(String str : list) {
//输出:str1,str2,str3,str4,str5,str6,
System.out.print(str+",");
}
以上是ArrayList的常用方法,仅个人观点,若有不对的地方,希望各位大佬多多指正
来源:https://blog.csdn.net/m0_54498614/article/details/112908446


猜你喜欢
- Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户
- 本文实例为大家分享了Android用户注册界面的设计,供大家参考,具体内容如下I. 实例目标 设计一个用户注册界面,在其中要使用到一些基础控
- mapper.xml中if标签test判断的用法1. 字符串等于条件的两种写法① 将双引号和单引号的位置互换<if test='
- 上一篇介绍了使用springmvc集成shiro登陆过程,通过FormAuthenticationFilter过滤器获取到用户输入的账号密码
- from jnius import autoclass>>> Stack = autoclass('java.ut
- class文件中的访问标志信息位于常量池下面的2个字节是access_flags 。 access_flags 描述的是当前类(或
- 在公司的项目中用到了分布式锁,但只会用却不明白其中的规则所以写一篇文章来记录使用场景:交易服务,使用redis分布式锁,防止重复提交订单,出
- 技术要点org.springframework.web.context.request.async.DeferredResult<T&
- Java9 集合类扩展of方法package com.jd.collections;import org.junit.Test;import
- 我就废话不多说了,大家还是直接看代码吧~package cn.nxl2018;class Test{ //十进制常量赋值 &n
- 概述线程池的好处和使用本篇文章就不赘叙了,不了解的可以参考下面两篇文章:一文全貌了解线程池的正确使用姿势学习线程池原理从手写一个线程池开始那
- Android 处理OnItemClickListener时关于焦点颜色的设置问题  
- 前不久看到鸿洋大大的圆形菜单,就想开始模仿,因为实在是太酷了,然后自己根据别人(zw哥)给我讲的一些思路、一些分析,就开始改造自己的圆形菜单
- 突然心血来潮,想自己做个小程序玩玩,但是怎么把他做成一个exe文件,让大家能够更好的理解和使用呢,百度了一下,说是需要exe4j来生成,但是
- 前言日志接口(slf4j)slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具
- 1、xml代码:<?xml version="1.0" encoding="utf-8"?&g
- Swagger是一款遵循 Restful 风格的接口文档开发神器,支持基于 API 自动生成接口文档,接口文档始终与 API 保持同步,不再
- 本文实例为大家分享了Unity实现透视滑动列表的具体代码,供大家参考,具体内容如下1、目的有时候,为了实现更好的美术效果,需要实现一些特殊的
- 本文实例为大家分享了C#实现简单的计算器功能的具体代码,供大家参考,具体内容如下环境:VS2010及以上版本1、建立个Window窗体应用2
- 目录登陆界面的实现登陆界面代码Login类login的监听类 LoginListener聊天界面运行图Client类代码Server代码登陆