java学习--ArrayList集合讲解

/*
* 数组的长度不可以发生改变
*
* 但是ArrayList集合的长度是可以随意变化的。
*
* 对于ArrayList来说,有一个尖括号<E>代表泛型
* 泛型:也就是装在集合中的所有元素,全都是统一的什么类型。
* 注意:泛型只能是引用类型,不是基本类型
*
* 注意事项:
* 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
* 对于内容为空,得到的是空的中括号:[]
*
* 常用方法:
* public boolean add(E e)
* public E get(int index)
* public E remove(int index) 参数时索引编号,返回值时被删除的元素
* public int size() 获取集合尺寸长度,返回值时元素个数
*
*
*
*
* 如果希望向集合ArrayList中存储基本类型,必须使用基本类型对应的包装类
* 基本类型 包装类(引用类型,都位于java.lang包下)
* byte Byte
* short Short
* int Integer 【特殊】
* long Long
* float Float
* double Double
* char Character 【特殊】
* boolean Boolean
*
* 从jdk1.5开始,支持自动装箱、自动拆箱,不需要人工干预
* 自动装箱:基本类型--->包装类型
* 自动拆箱:包装类型--->基本类型
*
*
* */

package cn.zst.day07.demo03;

import java.util.ArrayList;
import java.util.Random;


public class Demo02ArrayList {

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

        //添加
        list.add("赵丽颖");
        list.add("古力娜扎");
        System.out.println(list);

        // 获取
        String name = list.get(1);
        System.out.println(name);

        //删除
        String whoRemoved = list.remove(0);
        System.out.println(whoRemoved);
        System.out.println(list);

        //长度
        int size = list.size();
        System.out.println(size);


        // 基本类型的集合
        ArrayList<Integer> listC = new ArrayList<>();
        listC.add(100);
        listC.add(200);
        int n = listC.get(1);
        System.out.println("第一号元素是:" + n);

        System.out.println("=============================");



        //练习
        //1.生成6个1~33之间的随机整数,添加集合,并遍历集合
        ArrayList<Integer> listD = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            int num = r.nextInt(33) + 1;
            listD.add(num);
        }
        System.out.println(listD);

        for (int i = 0; i < listD.size(); i++) {
            System.out.println(listD.get(i));
        }

        System.out.println("=============================");

        //2.自定义4个学生对象,添加到集合,并遍历集合
        ArrayList<Person> listStudent = new ArrayList<>();
        listStudent.add(new Person("张三", 18));
        listStudent.add(new Person("李四", 28));
        listStudent.add(new Person("王五", 38));
        listStudent.add(new Person("赵六", 48));
        System.out.println(listStudent);
        for (int i = 0; i < listStudent.size(); i++) {
            System.out.println("姓名:" + listStudent.get(i).getName() + ",年龄:" + listStudent.get(i).getAge());
        }


        System.out.println("=============================");


        //3.定义以指定格式打印集合的方法(ArrayList作为参数),打印以 {元素@元素} 的字符串
        ArrayList<String> listE = new ArrayList<>();
        listE.add("乔峰");
        listE.add("段誉");
        listE.add("虚竹");
        listE.add("阿朱");
        listE.add("王语嫣");
        listE.add("西夏公主");
        System.out.println(listE);
        printArrayList(listE);


        System.out.println("=============================");



        // 4.用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合。
        // 要求使用自定义的方法来实现筛选
        ArrayList<Integer> listF = new ArrayList<>();
        Random ran = new Random();
        for (int i = 0; i < 20; i++) {
            listF.add(ran.nextInt());
        }
        System.out.println(listF);
        ArrayList<Integer> numbers = getEvenNumbers(listF);
        System.out.println(numbers);

    }

    /**
     *
     * @param list
     */
    public static void printArrayList(ArrayList<String> list) {
        String str = "{";
        int size = list.size();
        for (int i = 0; i < size; i++) {
            if (i == size - 1) {
                str += list.get(i);
            } else {
                str += list.get(i) + "@";
            }
        }
        str += "}";
        System.out.println(str);
    }

    /**
     *
     * @param list
     * @return ArrayList<Integer>
     */
    public static ArrayList<Integer> getEvenNumbers(ArrayList<Integer> list) {
        ArrayList<Integer> evenNumbersList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i) % 2 == 0) {
                evenNumbersList.add(list.get(i));
            }
        }
        return evenNumbersList;
    }

}


package cn.zst.day07.demo03;

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;
    }
}

  

posted @ 2022-03-03 10:24  坏小子1993  阅读(79)  评论(0编辑  收藏  举报