ArrayList集合---相关操作

ArrayList类—相关操作

  • 添加和删除

    package cn.xiaoge.day07.demo04;
    
    /*
    数组的长度不可以发生改变.
    但是ArrayList集合的长度是可以随意变化的
    
    对于ArrayList来说, 有一个尖括号<E>代表泛型
    泛型: 也就是装载集合当中的所有元素, 全部是统一的什么类型
    注意: 泛型只能是引用类型, 不能是基本类型.
    
    注意事项:
    对于ArrayList集合来说, 直接打印得到的不是地址值, 而是内容.
    如果内容是空, 得到的是空的中括号: []
     */
    
    import java.util.ArrayList;
    
    public class Demo02ArrayList {
        public static void main(String[] args) {
            // 创建了一个ArrayList集合, 集合的名称是list, 里面装的全都是String字符串类型的数据
            // 备注: 从JDK 1.7+开始, 右侧的尖括号内部可以不写内容, 但是<>本身还是要写上的.
            ArrayList<String> list = new ArrayList<>();
            System.out.println(list); // []
    
            // 向集合当中添加数据, 需要用到add(字符串)方法
            list.add("哈哈");
            list.add("嘻嘻");
            System.out.println(list); // [哈哈, 嘻嘻]
    
            // 删除集合当中的元素, 需要用到remove(索引)方法
            list.remove(0);
            System.out.println(list); // [嘻嘻]
        }
    }
    
    // 运行结果
    []
    [哈哈, 嘻嘻]
    [嘻嘻]
    
  • ArrayList常用方法

    package cn.xiaoge.day07.demo04;
    
    /*
    ArrayList当中的常用方法:
    
    public boolean add(E e): 向集合当中添加元素, 参数的类型和泛型一致.
    备注: 对于ArrayList集合来说, add添加动作一定是成功的, 所以返回值可用可不用.
    但是对于其他集合来说, add添加动过不一定成功.
    
    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> list = new ArrayList<>();
    
            // 向集合中添加元素: add
            boolean success = list.add("柳岩");
            System.out.println(list); // [柳岩]
            System.out.println("添加的动作是否成功: " + success); // true
    
            System.out.println("==============================");
    
            list.add("高圆圆");
            list.add("赵又廷");
            list.add("李小璐");
            list.add("贾乃亮");
            System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮]
    
            System.out.println("==============================");
    
            // 从集合中获取元素: get 索引值从0开始
            String name = list.get(0);
            System.out.println("第0号索引位置:" + name); //第0号索引位置:柳岩
    
            System.out.println("==============================");
    
            // 获取集合的长度尺寸, 也就是其中元素的个数
            int size = list.size();
            System.out.println("集合的长度是:" + size); // 集合的长度是:5
    
            System.out.println("==============================");
    
            // 从集合中删除元素: remove 索引值从0开始
            String whoRemove = list.remove(3);
            System.out.println("被删除的人是:" + whoRemove); // 被删除的人是:李小璐
            System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 贾乃亮]
        }
    }
    
    // 运行结果
    [柳岩]
    添加的动作是否成功: true
    ==============================
    [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮]
    ==============================0号索引位置:柳岩
    ==============================
    集合的长度是:5
    ==============================
    被删除的人是:李小璐
    [柳岩, 高圆圆, 赵又廷, 贾乃亮]
    
  • ArrayList遍历

    package cn.xiaoge.day07.demo04;
    
    import java.util.ArrayList;
    
    public class Demo04ArrayListEach {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
    
            list.add("迪丽热巴");
            list.add("古力娜扎");
            list.add("马尔扎哈");
    
            // 遍历集合
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    
    // 运行结果
    迪丽热巴
    古力娜扎
    马尔扎哈
    
  • ArrayList存基本类型

    package cn.xiaoge.day07.demo04;
    
    /*
    如果希望像集合ArrayList当中存储基本类型数据, 必须使用基本类型对应的"包装类".
    
    基本类型    包装类 (引用类型, 包装类都位于java.lang包下)
    byte        Byte            不用记首字母大写
    short       Short           不用记首字母大写
    int         Integer         [特殊]记下名称
    long        Long            不用记首字母大写
    float       Float           不用记首字母大写
    double      Double          不用记首字母大写
    char        Character       [特殊]记下名称
    boolean     Boolean         不用记首字母大写
    
    从JDK 1.5+开始, 支持自动装箱 自动拆箱.
    
    自动装箱: 基本类型 ---> 包装类型
    自动拆箱: 包装类型 ---> 基本类型
     */
    
    import java.util.ArrayList;
    
    public class Demo05ArrayListBasic {
        public static void main(String[] args) {
            ArrayList<Integer> list = new ArrayList<>();
    
            list.add(3);
            list.add(4);
            list.add(5);
            list.add(6);
            System.out.println(list); // [3, 4, 5, 6]
    
            System.out.println("==============================");
    
            int num = list.get(1);
            System.out.println("第一号元素是:" + num); // 第一号元素是:4
        }
    }
    
    // 运行结果
    [3, 4, 5, 6]
    ==============================
    第一号元素是:4
    
  • ArrayList存随机数

    package cn.xiaoge.day07.demo05;
    
    /*
    题目:
    生成6个1~33之间的司机整数, 添加到集合, 并遍历集合.
    
    思路:
    1. 需要存储6个数字, 创建一个集合, <Integer>
    2. 产生随机数, 需要用到Random
    3. 用到循环6次, 来产生6个随机数字: for循环
    4. 循环内调用r.nextInt(int n), 参数33, 0~32, 整体+1才是1~33
    5. 把数字添加到集合中: add
    6. 遍历集合: for size get
     */
    
    import java.util.ArrayList;
    import java.util.Random;
    
    public class Demo01ArrayListRandom {
        public static void main(String[] args) {
            Random r = new Random();
            ArrayList<Integer> list = new ArrayList<>();
    
            for (int i = 0; i < 6; i++) {
                int num = r.nextInt(33) + 1;
                list.add(num);
            }
    
            // 遍历集合
            for (int i = 0; i < list.size(); i++) {
                System.out.print(list.get(i) + " ");
            }
        }
    }
    
    // 运行结果
    16 21 5 5 12 28 
    
  • Student类

    package cn.xiaoge.day07.demo05;
    
    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;
        }
    }
    
    
  • ArrayList存Student类的对象

    package cn.xiaoge.day07.demo05;
    
    /*
    题目:
    自定义4个学生对象, 添加到集合, 并遍历
    
    思路:
    1. 自定义Student学生类, 四个部分.
    2. 创建一个集合, 用来存储学生对象. 泛型: <Student>
    3. 根据类, 创建4个学生对象
    4. 将4个学生对象添加到集合中: add
    5. 遍历集合: for size get
     */
    
    import java.util.ArrayList;
    
    public class Demo02ArrayListStudent {
        public static void main(String[] args) {
            Student stu1 = new Student("柳岩", 20);
            Student stu2 = new Student("古力娜扎", 30);
            Student stu3 = new Student("杨洋", 30);
            Student stu4 = new Student("贾乃亮", 40);
    
            ArrayList<Student> list = new ArrayList<>();
            list.add(stu1);
            list.add(stu2);
            list.add(stu3);
            list.add(stu4);
    
            for (int i = 0; i < list.size(); i++) {
                Student stu = list.get(i);
                System.out.println("姓名: " + stu.getName() + ", 年龄" + stu.getAge());
            }
        }
    }
    
    // 运行结果
    姓名: 柳岩, 年龄20
    姓名: 古力娜扎, 年龄30
    姓名: 杨洋, 年龄30
    姓名: 贾乃亮, 年龄40
    
  • 自定义函数打印ArrayList

    package cn.xiaoge.day07.demo05;
    
    /*
    题目:
    定义以指定格式打印的集合的方法(ArrayList类型作为参数), 使用{}括起来, 使用@分割每个元素.
    格式参照{元素@元素@元素}
    
    System.out.print(list);  [柳岩, 古力娜扎, 杨洋, 贾乃亮]
    arrayListPrint(list);    {柳岩@古力娜扎@杨洋@贾乃亮}
     */
    
    import java.util.ArrayList;
    
    public class Demo03ArrayListPrint {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            list.add("柳岩");
            list.add("古力娜扎");
            list.add("杨洋");
            list.add("贾乃亮");
    
            // 参数是ArrayList对象list 传递的是地址
            arrayListPrint(list);
        }
    
        /*
            定义方法三要素:
            返回值类想选那个: 只是进行打印而已, 没有运算, 没有结果: 所以用void
            方法名称: arrayListPrint
            参数列表: ArrayList
         */
        public static void arrayListPrint(ArrayList<String> list) {
            System.out.print("{");
            for (int i = 0; i < list.size(); i++) {
                if (list.size() - i == 1){
                    System.out.print(list.get(i));
                    break;
                }
                System.out.print(list.get(i) + "@");
            }
            System.out.print("}");
        }
    }
    
    // 运行结果
    {柳岩@古力娜扎@杨洋@贾乃亮}
    
  • 自定义函数返回ArrayList对象

    package cn.xiaoge.day07.demo05;
    
    /*
    题目:
    用一个大集合存入20个随机数字, 然后筛选其中的偶数元素, 放到小集合当中
    要求使用自定义的方法来实现筛选
    
    分析:
    1. 需要创建一个大集合,用来存储int数字:<Integer>
    2. 随机数字就用Random nextInt
    3. 循环20次,把随机数字放入大集合:for循环、add方法
    4. 定义一个方法,用来进行筛选。
    筛选:根据大集合,筛选符合要求的元素,得到小集合。
    三要素
    返回值类型:ArrayList小集合(里面元素个数不确定)
    方法名称:getSmallList
    参数列表:ArrayList大集合(装着20个随机数字)
    5. 判断(if)是偶数:num % 2 == 0
    6. 如果是偶数,就放到小集合当中,否则不放。
     */
    
    import java.util.ArrayList;
    import java.util.Random;
    
    public class Demo04ArrayListReturn {
        public static void main(String[] args) {
            ArrayList<Integer> bigList = new ArrayList<>();
            Random r = new Random();
            for (int i = 0; i < 20; i++) {
                int num = r.nextInt(100) + 1; // 1~100
                bigList.add(num);
            }
    
            // 传递进去的bigList地址值 该方法 返回的也是地址值
            ArrayList<Integer> smallList = getSmallList(bigList);
    
            System.out.println("偶数总共有多少个:" + smallList.size());
            for (int i = 0; i < smallList.size(); i++) {
                System.out.println(smallList.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 % 2 == 0) {
                    smallList.add(num);
                }
            }
            return smallList;
        }
    }
    
    // 运行结果
    偶数总共有多少个:12
    2
    98
    66
    46
    32
    68
    28
    28
    26
    4
    90
    32
    
发布了275 篇原创文章 · 获赞 89 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zsx1314lovezyf/article/details/102689925
今日推荐