【Java基础】常用类(2):ArrayList集合

相较于之前所学的数组,ArrayList的长度是可以变化。

一、ArrayList基本使用:

import java.util.ArrayList;
/*
ArrayList集合的长度是可以随意变化的,区别于数组
ArrayList的<> 中只能是引用类型,不能是基本类型

注意:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容
如果内容为空,则打印的结果是[]
 */
public class Demo01ArrayList {
    public static void main(String[] args) {
        //创建ArrayList集合,内部数据类型是String字符串
        ArrayList<String> list  = new ArrayList<>();
        System.out.println(list);//[]

        //向集合中添加数据,add方法
        list.add("姜春蕾");
        list.add("姜春蕾");
        list.add("姜春蕾");
//list.add(100);错误写法

System.out.println(list);//[姜春蕾,姜春蕾,姜春蕾] } }

ps:<>中指定数据类型,使用add添加元素时必须与该数据类型一致;

二、常用方法、遍历集合

  添加元素:add(元素内容)  注意:对于集合来说add方法不一定成功,后期学习

  获取元素:get(index),index指索引值,从0开始

  删除元素:remove(index),index同上

  集合长度:集合名称.size()

import java.util.ArrayList;
/*
ArrayList常用方法

添加元素:public boolean add(E e)
获取元素:public E get(int index)索引也是从0开始
删除元素:public E remove(int index)索引也是从0开始
获取长度:public int size()

 */
public class Demo02ArrayListMethod {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        boolean add = list.add("小子,要加加油啊");

        System.out.println(add);//是布尔类型的

        list.add("高圆圆");
        list.add("赵又廷");
        list.add("李小璐");
        list.add("贾乃亮");
        System.out.println(list);

        //获取元素
        String get = list.get(2);
        System.out.println(get);

        //集合中删除元素
        String remove = list.remove(0);
        System.out.println("被移除的是:" + remove);
        System.out.println(list);

        //获取集合长度
        System.out.println("集合的长度是:" + list.size());

        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

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

import java.util.ArrayList;

public class Demo03ArrayListBasic {
    public static void main(String[] args) {
        //错误写法
        //ArrayList<int> list = new ArrayList<>();

        /*
        如果希望向集合中存储基本类型数据,必须使用基本类型对应的包装类
         byte       Byte
         short      Short
         int        Integer
         long       Long
         float      Float
         double     Double
         char       Character
         boolean    Boolean
         */
        ArrayList<Integer> list = new ArrayList<>();
        list.add(100);
        System.out.println(list);//[100]
        System.out.println(list.get(0));//100

        ArrayList<Character> list1 = new ArrayList<>();
        list1.add('A');
        System.out.println(list1);//[A]
        System.out.println(list1.get(0));//A
    }
}

四、ArrayList集合作为方法的参数

import java.util.ArrayList;

/*
自定义一个方法,按指定格式打印集合,{元素@元素@元素...}
 */
public class Demo06ArrayListPrint {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张三丰");
        list.add("殷素素");
        list.add("张翠山");
        list.add("张无忌");
        System.out.println(list);//[张三丰, 殷素素, 张翠山, 张无忌]
        //调用方法
        printArrayList(list);//{张三丰@殷素素@张翠山@张无忌}
    }
    public static void printArrayList(ArrayList<String> list){
        System.out.print("{");
        for (int i = 0; i < list.size(); i++) {
            String name = list.get(i);
            if (i == list.size() - 1){
                System.out.print(name +"}");
            }else{
                System.out.print(name + "@");
            }
        }
    }
}

五、ArrayList集合作为方法的返回值

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

/*
用一个大集合存放20个随机数字,筛选其中的偶数元素,放到小集合当中
要求使用自定义的方法来实现筛选
 */
public class Demo07ArrayListReturn {
    public static void main(String[] args) {
        //创建一个大集合,存放20个随机整数
        ArrayList<Integer> bigList = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 20; i++) {
            int num = r.nextInt(100);
            bigList.add(num);
        }
        //接收返回的小集合,赋值给result接收并遍历
        ArrayList<Integer> result = getSmallList(bigList);
        System.out.println(result);
        for (int i = 0; i < result.size(); i++) {
            System.out.println(result.get(i));
        }
    }
    //集合可以作为方法的参数、返回值类型
    //将大集合作为参数,并将其中符合条件的数据存放在小集合,并返回
    public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){
        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < bigList.size(); i++) {
            int num = bigList.get(i);
            //判断是否为偶数
            if(num > 0 && num % 2 == 0){
                smallList.add(num);
            }
        }
        return smallList;
    }
}
posted @ 2020-06-07 22:12  蹲马路牙子吃炒面  阅读(239)  评论(0编辑  收藏  举报