ArrayList入门

ArrayList

1. ArrayList集合概述

  • 传统数组的缺点就是一旦创建之后,不可以再改变
  • 而ArrayList的长度是可以随意改变的
  • ArrayList <E> 、Scanner、Random都是在java.util这个包中,E表示泛型,即任意的类
  • 但是注意:泛型只能是引用类型,而不能是基本类型,像关键字int、double这些表示的就是基本类型,而类String,StringBuffer这些就是引用类型

2. ArrayList的基本使用

  • 基本使用方法要记住,有以下四个
public boolean add(E e) 向集合中添加一些数据
public E get(int index); 从集合中获取元素,参数是索引编号,返回值是对应位置的元素
public E remove(int index);  从集合中删除元素,参数是索引编号,返回值是被删除的元素
public int size();  获取集合的尺寸长度,返回值是集合中包含的元素个数
  • 我们就来用一下这四个基本方法
import java.util.ArrayList;

public class DemoArrayList {
	public static void main(String[] args) {
		//创建一个ArrayList集合,集合的名称是List,泛型是String
		//备注:从JDK1.7开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的
		ArrayList<String> list = new ArrayList<>();
		System.out.println(list); //输出是一个[],如果list里面本身就有内容,那就输出[内容]
		
		//ArrayList常用的一些方法:
		//1. public boolean add(E e) 向集合中添加一些数据
	    //注意,ArrayList的添加方法是一定能成功的,所以返回值boolean一定是true,我们可以忽略这个           返回值,但其它集合不一定都可以成功
		list.add("周杰伦");
		list.add("贾斯汀比伯");
		list.add("权志龙");
		System.out.println(list); // [周杰伦, 贾斯汀比伯, 权志龙]
		
		//2. public E get(int index);  从集合中获取元素,参数是索引编号,返回值是对应位置的元素
		String name = list.get(0); 
		System.out.println("第0号的索引位置是:" + name); //第0号的索引位置是:周杰伦
		
		//3. public E remove(int index); 从集合中删除元素,参数是索引编号,返回值是被删除的元素
		String Who = list.remove(2);
		System.out.println("被删除的人:" + Who);
		//哈哈,还是把志龙加回去
		list.add("权志龙");
		
		//4. public int size();  获取集合的尺寸长度,返回值是集合中包含的元素个数
		int size = list.size();
		System.out.println("现在一共有多少位巨星:" + size + "位");
	}
}

/*输出结果:
    []
    [周杰伦, 贾斯汀比伯, 权志龙]
    第0号的索引位置是:周杰伦
    被删除的人:权志龙
    现在一共有多少位巨星:3位
 */
  • 学完基本方法,我们就可以遍历一下ArrayList了
import java.util.ArrayList;

public class DemoArrayListEach {

	public static void main(String[] args) {
		//创建一个ArrayList集合,集合的名称是List,泛型是String
		ArrayList<String> list = new ArrayList<>();
		
		//添加人物
		list.add("周杰伦");
		list.add("贾斯汀比伯");
		list.add("权志龙");
		
		//遍历ArrayList
		for(int i = 0; i < list.size(); i++) {
			String name = list.get(i);
			System.out.println(name);
		}
	}
}

/*输出结果
    周杰伦
    贾斯汀比伯
    权志龙
*/

3. 当泛型是包装类型的时候

  • 我们说下列这种写法是错误的,因为泛型不能是基本类型
ArrayList<int> list = new ArrayList<>();
  • 不能写基本类型,但是我们可以写它的包装类型,例如int的包装类型是Integer
ArrayList<Integer> list = new ArrayList<>();
  • 做一个表格,说明基本类型和包装类型的对照关系
基本类型对应的包装类型 (基本是将左边第一个字母大写)
byteByte
shortShort
intInteger [特殊]
longLong
floatFloat
doubleDouble
charCharacter [特殊]
booleanBoolean
  • 自动装箱和自动拆箱

    看下面这个例子:

    //创建一个泛型为Integer的集合list
    ArrayList<Integer> list = new ArrayList<>();
    
    //添加整形数字10
    list.add(10);
    
    //得到第零号元素,就是数字10
    int num = list.get(0);
    

    为什么明明是 Integer 的包装类型数据却能用 int num来接收呢

    原因是从JDK1.5开始…

    int —> Integer 这个过程是编译器自动处理的,叫自动装箱

    Integer —> int 这个过程也是编译器自动处理的,叫自动拆箱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值