2021.4.26笔记 ArrayList的基本用法


基本概念

数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化的。
对于ArrayList来说,有一个尖括号代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。

注意

1.泛型只能是引用类型,不能是基本类型。
2.对于ArrayList集合来说,直接打印到的不是地址值,而是内容。如果内容是空,得到的是空的中括号。[ ]
举例:

package com.learning.demo05;

import java.util.ArrayList;

public class DemoArrayList {
    public static void main(String[] args) {
        ArrayList<String> arr = new ArrayList<>();
        arr.add("小新");
        System.out.println(arr);
    }
}

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():获取集合的尺寸长度,返回值是集合中包含的元素个数。(类似数组中的array.length)
举例

package com.learning.demo05;

import java.util.ArrayList;

public class ArrayListMethod {
    public static void main(String[] args) {
        ArrayList<String> arr = new ArrayList<>();
        arr.add("小新");
        arr.add("妮妮");
        arr.add("风间");
        for (int i = 0; i < arr.size(); i++) {
            System.out.println(arr.get(i));
            //遍历
        }
        arr.remove(1);
        System.out.println(arr);
    }
}

ArrayList集合存储基本数据类型

如果希望向集合ArrayList当中存储基本数据类型,必须使用基本类型对应的“包装类”。
从JDK1.5+开始,支持自动装箱,自动拆箱。
自动装箱:基本类型==>包装类型
(如:int==>integer)
自动拆箱:包装类型==>基本类型
(如:integer==>int)

基本类型包装类(引用类型,包装都位于java.lang包下)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

举例

package com.learning.demo05;

import java.util.ArrayList;

public class IntArrayList {
    public static void main(String[] args) {
        ArrayList<Integer> arr = new ArrayList<>();
        arr.add(100);
        System.out.println(arr);
    }
}

ArrayList练习

1.生成6个1到33之间的随机整数,添加到集合,并遍历集合。

package com.learning.demo05;

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

public class ArrayListRandom {
    public static void main(String[] args) {
        Random ran = new Random();
        ArrayList<Integer> inter = new ArrayList<>();
        int num;
        for (int i = 0; i < 6; i++) {
            num = ran.nextInt(33) + 1;
            inter.add(num);
        }
        for (int i = 0; i < inter.size(); i++) {
            System.out.println(inter.get(i));
        }
    }
}

2.自定义4个学生对象,添加到集合,并遍历。

package com.learning.demo05;

import java.util.ArrayList;

public class PracticeObject {
    public static void main(String[] args) {
        ArrayList<PracticeClass> arr = new ArrayList<>();
        PracticeClass praClass01 = new PracticeClass("小新",6);
        PracticeClass praClass02 = new PracticeClass("妮妮",6);
        PracticeClass praClass03 = new PracticeClass("风间",6);
        PracticeClass praClass04 = new PracticeClass("正男",6);
        arr.add(praClass01);
        arr.add(praClass02);
        arr.add(praClass03);
        arr.add(praClass04);
        for (int i = 0; i < arr.size(); i++) {
            PracticeClass temp = arr.get(i);
            System.out.println("名字:" + temp.getName() + "  年龄:" + temp.getAge() + "岁");
        }
    }
}

3.定义以指定格式打印集合的方法(ArrayList类型作为参数)。使用{}扩起集合,使用@分隔每一个元素。
格式参照{元素1@元素2@元素3}

package com.learning.demo05;

import java.util.ArrayList;

public class ArrayListChange {
    public static void main(String[] args) {
        ArrayList<String> arr = new ArrayList<>();
        arr.add("小新");
        arr.add("妮妮");
        arr.add("风间");
        printArrayList(arr);
    }
    public static void printArrayList(ArrayList<String> arr) {
        if (arr.size() == 0){           //避免元素内没有元素的情况
            System.out.println("里面并没有元素");
        }else {
            System.out.print("输出样式为:");
            for (int i = 0; i < arr.size(); i++) {
                String name = arr.get(i);
                if(i == 0){             //打印第一个元素的时候加上左边的大括号
                    System.out.print("{" + name);
                }else if (i == (arr.size() -1)){    //打印到最后一个元素的时候加上右边的大括号
                    System.out.println("@" + name + "}");
                }else {
                    System.out.print("@" + name);
                }
            }
        }
    }
}

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

package com.learning.demo05;

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

public class ArrayListClassify {
    public static void main(String[] args) {
        ArrayList<Integer> arr = new ArrayList<>();         //创建数组对象
        ArrayList<Integer> temp = Classify(arr);       //调用方法
        System.out.println(temp);           //打印验证返回值是否为小集合
    }
    public static ArrayList<Integer> Classify(ArrayList<Integer> arr){
        int num1;
        ArrayList<Integer> arr2 = new ArrayList<>();
        Random ran = new Random();
        for (int i = 0; i < 20; i++) {
            num1 = ran.nextInt(50);
            arr.add(num1);          //将数字储存到大集合中
            if (num1 % 2 == 0){     //判定是否为偶数,是的话存储到小集合中
                arr2.add(num1);
            }
        }
        return arr2;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值