第18天学习Java的笔记-ArrayList

这篇博客详细介绍了ArrayList集合在Java中的使用,包括对象数组、ArrayList的基本操作、存储基本数据类型的方法,以及通过四个不同练习展示了ArrayList的遍历和筛选功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还有31天!
对象数组

package Demo1801;

public class Person {

    private String name;
    private int age;

    public Person() {
    }

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

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

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

public class Demo01Array {
    public static void main(String[] args) {
        //首先创建一个长度为3的数组,里面用来存放Person类型的对象
        Person[] array = new Person[3];
        System.out.println(array);//[LDemo1801.Person;@5fd0d5ae
        System.out.println(array[0]);//null

        Person one = new Person("one",1);
        Person two = new Person("two",2);
        Person three = new Person("three",3);

        //将one当中的地址值赋值到数组的0号元素位置
        array[0] = one;
        array[1] = two;
        array[3] = three;
        System.out.println(array[0].getName());
    }
}

ArrayList集合概述和基本使用

package Demo1801;

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

对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型,也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型。

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

* */

import java.util.ArrayList;

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

        //向集合当中添加一些数据,需要用到add方法。但是添加进去的必须是字符串
        arrayList.add("xx");
        arrayList.add("hh");
        System.out.println(arrayList);//[xx, hh]

    }
}

ArrayList集合的常用方法和遍历

package Demo1801;

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

import java.util.ArrayList;

public class Demo03ArrayListMethod {
    public static void main(String[] args) {

        ArrayList<String> arrayList = new ArrayList<>();
        System.out.println(arrayList);//[]

        //向集合当中添加元素
        arrayList.add("xx");
        arrayList.add("tt");

        //打印集合长度
        System.out.println(arrayList.size());

        //输出集合内容
        System.out.println(arrayList);

        //获得集合0号元素,get,索引值从0开始
        System.out.println(arrayList.get(0));//xx

        //删除集合第二个元素并打印
        arrayList.remove(1);
        System.out.println(arrayList);

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

        ArrayList<String> arrayList1 = new ArrayList<>();
        boolean success = arrayList1.add("hh");
        //System.out.println("添加的动作是否执行:" + success);
        arrayList1.add("hh1");
        arrayList1.add("hh2");
        System.out.println(arrayList1);//[hh, hh1, hh2]
        //获取
        String name = arrayList1.get(0);
        System.out.println(name);//hh

        //删除
        String delete = arrayList1.remove(2);
        System.out.println("被删除的是:" + delete);//hh2
    }
}
package Demo1801;

import java.util.ArrayList;

public class Demo04ArrayListEach {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("one");
        arrayList.add("two");
        arrayList.add("three");
        arrayList.add("four");
        arrayList.add("five");
        for (int i = 0; i < arrayList.size(); i++) {
            String name = arrayList.get(i);
            System.out.println("第" + (i + 1) + "个元素名字为" + name);
        }
    }
}

ArrayList集合存储基本数据类型

package Demo1801;

import java.util.ArrayList;

/*
* 如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应得包装类。
*
* 基本类型   包装类(引用类型,包装类都位于java.lang包下)
* byte       Byte
* short      Short
* int        Integer[特殊]
* long       Long
* float      Float
* double     Double
 * char       Character[特殊]
* boolean    Boolean
*
* 从JDK1.5开始,支持自动装箱、自动拆箱。
* 自动装箱:基本类型--》包装类型(引用类型)
* 自动拆箱:包装类型--》基本类型
*
* */

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

        ArrayList<Integer> array = new ArrayList<>();
        array.add(1);
        array.add(3);
        System.out.println(array);

    }
}

练习1:存储随机数字

package Demo1801;

/*
题目:
生成6个1-33之间的随机整数,添加到集合,并遍历集合

思路:
1.创建存储整数的集合;
2.创建随机数对象
3.生成6个随机整数,利用循环放入集合中,要注意random要加一
4.遍历集合
* */

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

public class Demo06ArrayListRandom {
    public static void main(String[] args) {
        //创建一个集合
        ArrayList<Integer> arrayList = new ArrayList<>();
        //创建随机数
        Random randomInt = new Random();

        //利用循环将随机数放入,注意范围
        for (int i = 0; i < 6; i++) {
            arrayList.add((randomInt.nextInt(33) + 1));
            System.out.println("集合中第" + (i + 1) + "个随机整数添加了");
        }

        System.out.println("===集合中的随机数如下===");
        System.out.println(arrayList);

        //利用循环遍历输出
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.println("第" + (i + 1) + "个元素为:" + arrayList.get(i));
        }
    }
}

练习2:存储学生对象

package Demo1801;

public class Student {

    private String name;
    private int age;

    public Student() {
    }

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

    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;
    }
}
package Demo1801;
/*
 * 题目:
 *自定义四个学生对象,添加到集合,并遍历。
 *
 * 思路:
 * 1.创建一个学生类,名字,年龄;
 * 2.创建四个学生对象;
 * 3.创建一个集合,将四个学生对象添加进去;
 * 4.遍历集合;
 * */

import java.util.ArrayList;

public class Demo07ArrayListStudent {
    public static void main(String[] args) {
        //2.创建四个学生对象
        Student stu1 = new Student("one", 21);
        Student stu2 = new Student("two", 22);
        Student stu3 = new Student("three", 23);
        Student stu4 = new Student("four", 24);

        //3.创建一个集合
        ArrayList<Student> arrayList = new ArrayList<>();

        //将对象添加到集合中
        arrayList.add(stu1);
        arrayList.add(stu2);
        arrayList.add(stu3);
        arrayList.add(stu4);

        System.out.println("当前集合中的对象为:" + arrayList);//[Demo1801.Student@7530d0a, Demo1801.Student@27bc2616, Demo1801.Student@3941a79c, Demo1801.Student@506e1b77]

        //4.遍历输出
        for (int i = 0; i < arrayList.size(); i++) {
            Student stu = arrayList.get(i);
            System.out.println("集合中第" + (i + 1) + "个学生是:" + stu.getName() + "今年" + stu.getAge());
            /*
            * 集合中第1个学生是:one今年21
              集合中第2个学生是:two今年22
              集合中第3个学生是:three今年23
              集合中第4个学生是:four今年24
            * */
        }

    }
}

练习3:按指定格式输出遍历 集合结果

package Demo1801;

/*
 * 练习三:
 * 定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起来集合,使用@分隔每个元素。
 * 格式参照{元素@元素@元素}
 *
 * 思路:
 * 1。定义一个参数为ArrayList的方法(默认打印出来的元素之间还有空格)
 * 2.
 * */

import java.util.ArrayList;

public class Demo08ArrayListPrint {
    public static void main(String[] args) {
        //2.创建一个集合对象
        ArrayList<Integer> array = new ArrayList<>();

        //3.将集合对象放入内容
        array.add(1);
        array.add(3);
        array.add(5);

        //4.调用集合打印方法
        arrayListPrint(array);//{1@3@5}
    }

    //1.定义一个打印集合的方法
    public static void arrayListPrint(ArrayList<Integer> arrayList) {

        System.out.print("{");

        for (int i = 0; i < arrayList.size(); i++) {

            if (i != arrayList.size() - 1){
                System.out.print(arrayList.get(i) + "@");
            }else {
                //最后一个元素的特殊情况
                System.out.println(arrayList.get(i) + "}");
            }
        }
    }
}

练习4:筛选集合中的偶数

package Demo1801;

/*
 * 练习四:
 * 用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中
 * 要求使用自定义的方法来实现筛选
 * */

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

public class Demo09ArrayListReturn {
    public static void main(String[] args) {
        //1.创建一个大集合
        ArrayList<Integer> array1 = new ArrayList<>();

        //2.产生随机数,将随机数放入大集合中
        Random num = new Random();
        for (int i = 0; i < 20; i++) {
            int ran = num.nextInt(51);
            array1.add(ran);
        }
        System.out.println(array1);//[41, 13, 21, 14, 39, 34, 47, 48, 23, 35, 0, 47, 32, 44, 26, 5, 13, 43, 9, 16]

        //4.传入大集合,得到小集合
        System.out.println(select(array1));//[14, 34, 48, 0, 32, 44, 26, 16]

    }

    //3.定义返回值为小集合的方法,参数为大集合
    public static ArrayList<Integer> select(ArrayList<Integer> arrayList) {

        //1.定义一个小集合
        ArrayList<Integer> array2 = new ArrayList<>();

        //2.偶数筛选,若是偶数则赋值给小集合
        for (int i = 0; i < arrayList.size(); i++) {
            int temp = arrayList.get(i);
            if (temp % 2 == 0) {
                array2.add(temp);
            }
        }

        //3.返回小集合
        return array2;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值