ArrayList集合如何在Java中使用
创始人
2024-12-29 06:22:24
0次

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 list1 = new ArrayList();
//后面的泛型类型可以省略
ArrayList list2 = new ArrayList<>();
list1.add("str1");
list1.add("str2");
//list1.add(23); 出现编译错误,list1只能存放String类型数据

ArrayList集合的初始化

无参构造

使用无参构造方法,按照空数组的方式初始化内部数组elementData

//内部数组为空
ArrayList list = new ArrayList(); 
//调用add()方法,空数组的长度变为10
list.add("str");

有参构造

使用有参构造方法,按照指定的容量,初始化内部数组elementData

//内部数组长度为38
ArrayList list02 = new ArrayList(38);

常用方法

1.add()方法

作用:给集合添加元素;

参数:①需要添加的元素②下标位置,需要添加的元素;

返回:boolean类型值;

ArrayList list = new ArrayList();
// 添加元素(默认添加至集合的末尾)
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 list1 = new ArrayList();
list1.add("str1");
list1.add("str2");
ArrayList list2 = new ArrayList();
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 list = new ArrayList();
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 list = new ArrayList();
list.add("str1");
list.add("str2");
list.add("str3");
list.add("str4");
int n=list.size();
System.out.println(n);//输出:4

5.clear()方法

作用:清除集合中的所有元素;

参数:无;

返回:无;

ArrayList list = new ArrayList();
list.add("str1");
list.add("str2");
System.out.println(list);//输出:[str1, str2]
list.clear();
System.out.println(list);//输出:[]

6.contains()方法

作用:判断集合内是否存在指定元素;

参数:指定元素;

返回:boolean(true表示存在,false表示不存在);

ArrayList list = new ArrayList();
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 list = new ArrayList();
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 list = new ArrayList();
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 list = new ArrayList();
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 list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6");
// 将集合内所有元素添加至heroList02
ArrayList list2 = new ArrayList();
list2.addAll(list1);
Object[] array01 = list2.toArray(); //转换成Object数组
String[] array02 = list2.toArray(new String[0]); // 转换成String类型数组

11.subList()方法

作用:在原集合中截取子集合;

参数:开始下标, 结束下标;

返回:子集合;

List list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6");
ArrayList list2 = new ArrayList();
list2.addAll(list1);
//截取(0,3),即为0,1,2三个元素,区间[0,3)
List result= list2.subList(0, 3);
System.out.println(result);//输出:[str1, str2, str3]

12.sort()方法

作用:对集合中的元素排序;

参数:Comparator比较器接口实现类对象;

返回:无;

List list1 = Arrays.asList("str8", "str4", "str6", "str3", "str2", "str9");
ArrayList list = new ArrayList();
list.addAll(list1);
//new Comparator()采用了匿名类对象,直接实现compare()方法
list.sort(new Comparator() {
	public int compare(String o1, String o2) {
		return o1.compareTo(o2);
	}
});
System.out.println(list);//输出:[str2, str3, str4, str6, str8, str9]

ArrayList集合的遍历

List list1 = Arrays.asList("str1", "str2", "str3", "str4", "str5", "str6");
ArrayList list = new ArrayList();
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 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+",");
}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...