Java中ArrayList类的常用方法

         ArrayList对象是可变数组,可以不设置长度。下面介绍一些常用方法。该对象是从0下标开始计算的。主要分成四个部分,增加元素删除元素修改元素查找元素

        是有序的

目录

一、增加元素

二、删除元素

三、修改元素值

四、查找元素

        (1)查找返回元素值

        (2)查找返回boolean值

        (3)查找返回int值

五、将ArrayList转换成数组 toArray().

例题:       激光样式


一、增加元素

        add(Object num);  //从ArrayList对象的最末尾处添加num值,即在以ArrayList对象的长度的下标处的值设置为num. 

       提供一个重载方法,add(int index,Object num); //可以在index下标插入num值,index后面的元素全部后移一位。

        代码示例:

import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(1);
		list.add(2);
		list.add(2,100);   //在2索引下插入100

		System.out.println(list);// 输出 [10, 20, 100, 1, 2]
	}
}

二、删除元素

        remove(int index); //删除索引为index的元素

        重载函数,remove(Object obj); // 删除ArrayList对象中存在obj的元素,删除成功返回true,失败返回false;

        代码示例:

import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(1);
		list.add(2);
		list.add(50);
		
		list.remove(3); //删除下标为3的元素
		System.out.println(list);  // 输出 [10, 20, 1, 50]
		System.out.println(list.remove((Object)90)); //删除值为90的元素,明显删除失败 返回 false
		System.out.println(list);  //输出 [10, 20, 1, 50]
	}
}

三、修改元素值

         set(int index, Object num);  // 将ArrayList对象的第index下标的元素的值修改为num。

        代码示例:

import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(1);
		list.add(2);
		list.add(50);
		list.set(3, 999);  //将下标为3的元素修改为999
		System.out.println(list);  // 输出 [10, 20, 1, 999, 50]
	}
}

四、查找元素

        (1)查找返回元素值

                Object get(int index);  //返回ArrayList对象第 index 下标的元素的值。

        代码示例:

import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(1);
		list.add(2);
		list.add(50);
		int num = list.get(3);  //获取到下标为3的元素
		System.out.println(num); //输出2
	}
}

        (2)查找返回boolean值

                 boolean contains(Object obj)  ;  //查找对象元素里是否存在obj,存在返回true ,否则返回false;

                 boolean isEmpty();  //对象为空返回true, 不为空返回false;

        代码示例:

import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(1);
		list.add(2);
		list.add(50);
		boolean  num = list.contains(20);  //确认list是否包含20
		System.out.println(num); //输出true
		System.out.println(list.isEmpty()); //判断list是否为空  返回false
	}
}

        (3)查找返回int值

                int indexOf(Object obj); //查找对象元素里第一次出现的obj,则返回该下标,否则返回-1;

                int lastindexOf(Object obj); //查找对象元素里最后一次出现的obj,则返回该下标,否则返回-1;

                int size();  //返回对象长度

        代码示例:


import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(50);
		list.add(2);
		list.add(50);
		list.add(50);
		int  firstindex = list.indexOf(50);  //返回list第最后一次出现50的下标
		int  endindex = list.lastIndexOf(50); //返回list最后一次出现50的下标
		System.out.println(firstindex); //输出2
		System.out.println(endindex); //输出5
		System.out.println(list.size()); //list的大小 输出6
	}
}

五、将ArrayList转换成数组 toArray().

     返回的是一个对象数组

        代码示例:

import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
				
		list.add(10);
		list.add(20);
		list.add(50);
		list.add(2);
		list.add(50);

		Object[] nums = new Object[list.size()];
		nums = list.toArray();
		for(Object i : nums) {
			System.out.print(i+" "); 
		}
		
	}
}

        

例题:       激光样式

这道题就可以用ArrayList类来存储数据。

题解:

import java.util.ArrayList;

public class Main {

	public static void main(String[] args) {


		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(2);
		list.add(3);
		for(int i =2 ;i<30;i++) {
			list.add(list.get(i-1)+list.get(i-2));
			
		}
		System.out.println(list.get(29));
		
	}

}

        此外,ArrayList类常和HashMap类搭配,用来存储一张二维表。每行表示的是ArrayList对象的元素,每行对应的多个列则就是HashMap类中key = value 的形式存储的。

六、对ArrayList数组排序

        使用的是Collections.sort(List<T> list);不是系统自带的包装类不可以排序,需要重写函数

        代码示例:

import java.util.ArrayList;
import java.util.Collections;

public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(100);
		list.add(50);
		Collections.sort(list);	
		System.out.println(list); //输出[1, 50, 100]
		
		
	}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tanxinji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值