Bootstrap

ArrayList的基本操作以及使用(java日志七)

前言

我们在存放对象时可以使用类数组,但是这有明显的弊端,数组的大小是固定的,当对象数量过多时,数组会发生越界,你可能在想,那就尽可能让数组开大一点,可是如果数组开大,数组中又会存在空间浪费问题,并且,也并未解决数组会越界的问题。

这时候我们就需要用到集合,接下来我们重点讲java中的一种集合类型Arraylist


一、ArrayList是什么?

Arraylist是java中的一种集合(collection)类型。它实现了list接口,能够存储多个对象并按索引访问和操作这些对象。与数组不同的是,arraylist的大小可以动态调整,是动态数组的实现方式之一,并且提供了一些方便的方法来添加、删除和访问元素。

二、ArrayList的基本操作

1.创建一个ArrayList的对象

1.在使用 ArrayList 前,必须先导入包含该类的 java.util 包。

import java.util.ArrayList;

2.创建 ArrayList 对象:使用 new 关键字创建一个新的 ArrayList 对象。

ArrayList<Type> list = new ArrayList<Type>();

其中 Type 表示该 ArrayList 存储的对象类型,表示是引用数据类型

注意
其中你需要注意的是ArrayList 存储不能直接使用int,char…这些都是基本数据类型。

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<int> list=new ArrayList<int>();
	}
}

在这里插入图片描述
在 Java 中,泛型类型参数只能为引用类型,并不能为基本数据类型。所以,将 int 作为泛型类型参数是不合法的。如果想要使用整数数组作为元素类型,则应该使用 Integer 作为泛型类型参数。

正确的写法应该为:

ArrayList<Integer> list=new ArrayList<Integer>();

此外下面是基本数据类型对应的引用数据类型

基本数据类型引用数据类型
byteByte
shortShort
intInteger (特殊)
longLong
floatFloat
doubleDouble
charCharacter (特殊)
booleanBoolean

2.基本操作

(1)添加元素

1.add(Object element)

在列表末尾添加一个元素;

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<Integer> list=new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		System.out.println(list);
	}
}

在这里插入图片描述

2.add(int index,Object element)

在列表的index位置(index从0开始)添加一个元素;

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<Integer> list=new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(1,10);
		System.out.println(list);
	}
}

在这里插入图片描述

3.addAll(int index,Collection c)

在index位置插上集合c的所有元素

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		ArrayList<String> list1=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list1.add("坤坤1");
		list1.add("坤坤2");
		System.out.println(list);
		list.addAll(1,list1);
		System.out.println(list);
	}
}

在这里插入图片描述

(2)删除元素

1.remove(int index)

删除下标为index的元素

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		System.out.println(list);
		list.remove(1);
		System.out.println(list);
	}
}

在这里插入图片描述

2.remove(Object element)

删除集合中第一次出现的element

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小明");
		System.out.println(list);
		list.remove("小明");
		System.out.println(list);
	}
}

在这里插入图片描述

3.removeAll()

将容器中与指定集合里相同的元素全部删除。即在当前集合中遍历,并从集合中删掉所有在参数集合中也存在的元素。

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		Collection<String> list1 = new ArrayList<>();
		list1.add("小明");
		list1.add("小张");
		System.out.println(list);
		list.removeAll(list1);
		System.out.println(list);
	}
}

在这里插入图片描述

4.clear()

清空集合中的所有元素。

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		System.out.println(list);
		list.clear();
		System.out.println(list);
	}
}

在这里插入图片描述

(3)查找元素

1.get(int index)

返回下标为index的元素

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		System.out.println(list);
		System.out.println(list.get(1));
	}
}

在这里插入图片描述

2.contains(Object element)

判断集合中是否含有元素element,若有则返回true

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		System.out.println(list.contains("小明"));
		System.out.println(list.contains("小李"));
	}
}

在这里插入图片描述

3.indexOf(Object element)

从头开始找元素element,若有则返回其下标,若无则返回-1

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		System.out.println(list.indexOf("小明"));
		System.out.println(list.indexOf("小李"));
	}
}

在这里插入图片描述

4.lastIndexOf(Object element)

从尾开始找元素element,若有则返回其下标,若无则返回-1
操作同3

(4)修改元素

1.set(int index,Object element)

用元素element取代下标为index的值

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		System.out.println(list);
		String str="小花";
		list.set(1,str);
		System.out.println(list);
	}
}

在这里插入图片描述

(5)遍历集合

1.for循环

需要用到size()得到集合元素的数量。

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		ArrayList<String> list1=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
	}
}

在这里插入图片描述

2.加强for循环(for each)(推荐)

在Java中,for each循环又称作增强型for循环,可以用于遍历数组或集合。
其基本语法如下:

for (元素类型Type 元素变量element : 遍历对象object) {
    // 执行代码块
}

for each循环可以防止数组越界错误和漏掉某些元素的情况发生,可以提高代码的可读性和易用性。

import java.util.*;
public class Test1{
	public static void main(String [] args){
		ArrayList<String> list=new ArrayList<String>();
		ArrayList<String> list1=new ArrayList<String>();
		list.add("小明");
		list.add("小美");
		list.add("小张");
		for(String i:list){
			System.out.println(i);
		}
	}
}

在这里插入图片描述

(6)集合的其它操作

1.toArray()
将集合转化为数组
2.toString()
将集合转化为字符串
3.isEmpty()
判断结合是否有元素有则返回true
4.clone()
集合的克隆
5.sort()
对集合进行排序


总结

以上就是今天要讲的内容,本文简单介绍了ArrayList的创建以及基本操作方法。

;