1. 数组的缺点
数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。

public class Demo01Array {

    public static void main(String[] args) {
        Person[] array = new Person[3];

        Person one = new Person("迪丽热巴", 18);
        Person two = new Person("古力娜扎", 28);
        Person three = new Person("马尔扎哈", 38);

        array[0] = one;
        array[1] = two;
        array[2] = three;

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

}
package day07.demo04;

public class Person {

    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 2. ArrayList基本用法

ArrayList集合的长度是可以改变的 对于ArrayList来说,有一个尖括号<E>表示泛型。 泛型:也就是装在集合当中的所有元素,全都是统一的类型。(String、Person、Student et.al) 注意:泛型只能是引用类型,不能是基本类型。 注意事项: 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。 如果内容是空,得到的是空的中括号: []

package day07.demo04;

import java.util.ArrayList;

/*
数组的长度不可以发生改变。
但是ArrayList集合的长度是可以改变的

对于ArrayList来说,有一个尖括号<E>表示泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的类型。(String、Person、Student et.al)
注意:泛型只能是引用类型,不能是基本类型。

注意事项:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
如果内容是空,得到的是空的中括号: []

使用方法:
1. 导包
2. 创建
3. 使用
 */
public class Demo02ArrayList {

    public static void main(String[] args) {
        //创建一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据
        //备注:从JDK 1.7+开始,右侧的尖括号内容可以不写,但是<>本身还是要写的。
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

//        int[] array = new int[10];
//        System.out.println(array.length);

        //向集合当中添加一些数据,需要用到add方法。
        list.add("赵丽颖");
        list.add("迪丽热巴");
        list.add("古力娜扎");

//        list.add(100); // 错误写法
    }

}

3. ArrayList常用方法

ArrayList当中的常用方法有: public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。 备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。 但是对于其他集合来说,add添加动作不一定成功。 public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。 publicE remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。 public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。

package day07.demo04;

import java.util.ArrayList;

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

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

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

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

 */
public class Demo03ArrayListMethod {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

        boolean success = list.add("迪丽热巴");
        System.out.println("添加的动作是否成功:" + success);
        list.add("古力娜扎");
        list.add("马尔扎哈");
        System.out.println(list);

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

        // 从集合中删除元素:remove。索引值从0开始。
        String whoRemoved = list.remove(2);
        System.out.println("谁被删除了:" +  whoRemoved);
        System.out.println(list);

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

    }

}

4. ArrayList存储基本类型数据

package day07.demo04;

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+开始,支持自动装箱、自动拆箱。

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

    public static void main(String[] args) {
        ArrayList<String> listA = new ArrayList<>();

        ArrayList<Integer> listB = new ArrayList<>();
        listB.add(100);
        listB.add(200);
        System.out.println(listB);

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

    }

}