ArrayList类

一.数组存储对象

package com.gatsby.study;

/*
题目:
定义一个数组,用来存储3个Person对象。
数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。
 */

public class Demo01Array {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person[] array = new Person[3];
		Person one = new Person("gatsby", 24);
		Person two = new Person("crush", 23);

		System.out.println(one);// com.gatsby.study.Person@6108b2d7

		// 将one当中的地址值赋值到数组的0号元素位置
		array[0] = one;
		array[1] = two;

		System.out.println(array[0]); // 地址值
		System.out.println(array[1]); // 地址值

		System.out.println(array[1].getName());

	}

}

二.什么是ArrayList类?
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了AbstractList ,并实现了 List 接口。
三.ArrayList 使用
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>();  // 初始化
E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
objectName: 对象名。

package com.gatsby.study;

import java.util.ArrayList;

public class Demo02ArrayList {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<String> list = new ArrayList<>();
		System.out.println(list); // []

		list.add("gatsby");
		System.out.println(list);

		list.add("crush");
		System.out.println(list);

//      list.add(100); // 错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才行
	}

}

四.ArrayList 增、删

package com.gatsby.study;

import java.util.ArrayList;

/*
ArrayList当中的常用方法有:

1.public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
但是对于其他集合(今后学习)来说,add添加动作不一定成功。

2.public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。

3.public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。

4.public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。
 */

public class Demo03ArrayListMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<String> list = new ArrayList<>();
		System.out.println(list); // []

		boolean success = list.add("Age");
		System.out.println(list);
		System.out.println("添加动作是否成功->	" + success);// true

		list.add("gatsby");
		list.add("crsuh");
		list.add("TravelingLight");
		list.add("EdSheeran");

		System.out.println(list);// [Age, gatsby, crsuh, TravelingLight, EdSheeran]

		// 从集合中获取元素:get。索引值从0开始
		String name = list.get(2);
		System.out.println("第二号索引位置->" + name);

		// 从集合中删除元素:remove。索引值从0开始。
		String whoRemoved = list.remove(3);
		System.out.println("被删除的人是:" + whoRemoved); // TravelingLight
		System.out.println(list); // [Age, gatsby, crsuh, EdSheeran]

		// 获取集合的长度尺寸,也就是其中元素的个数
		int size = list.size();
		System.out.println("集合的长度是:" + size);

	}

}

  五,ArrayList 查,遍历

package com.gatsby.study;

import java.util.ArrayList;
import java.util.Iterator;

public class Demo04ArrayListEach {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ArrayList<String> arrayList = new ArrayList<>();
		arrayList.add("Avicii");
		arrayList.add("Crsuh");
		arrayList.add("EdSheeran");
		arrayList.add("Gatsby");

		// 1.使用迭代器 遍历 每个集合对象都有自己的迭代器
		Iterator<String> it = arrayList.iterator();
		// 泛型指的是 迭代出 元素的数据类型
		while (it.hasNext()) {
			String string = it.next();//获取迭代出的元素
			System.out.println("arrayList中的元素->" + string);
		}

		// 2. 根据索引位置,遍历集合    效率最高
		for (int i = 0; i < arrayList.size(); i++) {
			System.out.println(arrayList.get(i));
		}

		// 3. for-each
		for (String string : arrayList) {
			System.out.println(string);
		}

	}

}

tips:: Iterator 在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。

tips:    新for循环必须有被遍历的目标。目标只能是Collection或者是数组。新式for仅仅作为遍历操作出现。

六. 存储基本数据类型
ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 <int> 不能写,但是存储基本数据类型对应的
包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写

import java.util.ArrayList;

/*
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。

基本类型    包装类(引用类型,包装类都位于java.lang包下)
byte        Byte
short       Short
int         Integer     【特殊】
long        Long
float       Float
double      Double
char        Character   【特殊】
boolean     Boolean

从JDK 1.5+开始,支持自动装箱、自动拆箱。

自动装箱:基本类型 --> 包装类型
自动拆箱:包装类型 --> 基本类型
 */
public class Demo05ArrayListBasic {

    public static void main(String[] args) {
        ArrayList<String> listA = new ArrayList<>();
        // 错误写法!泛型只能是引用类型,不能是基本类型
//        ArrayList<int> listB = new ArrayList<>();

        ArrayList<Integer> listC = new ArrayList<>();
        listC.add(100);
        listC.add(200);
        System.out.println(listC); // [100, 200]

        int num = listC.get(1);
        System.out.println("第1号元素是:" + num);
    }

}

  

 

原文地址:https://www.cnblogs.com/crushgirl/p/13528289.html