Java ArrayList

用法举例:

/**
 * @author yuanxuan-chen
 * @date 2020-03-04 12:49
 */
import java.util.ArrayList;
import java.util.List;

public class NP_ArrayList {
    public static void main(String[] args) {
        /**
         * 定义ArrayList  and  List, list会快些
         */
        ArrayList<String> arrayList = new ArrayList<String>();
        ArrayList<String> list = new ArrayList<String>();

        /**
         * 增加
         * 1, 将字符串放在下表为1的地方,其他往后移动
         */
        list.add("123");
        list.add("456");
        list.add("789");
        list.add(1, "string");

        /**
         * 将list2,加到list1后面
         */
        List<String> list2 = new ArrayList<>();
        list2.add("b");
        list2.add("b");
        list.addAll(list2);

        /**
         * 删除,返回的值为删除的值
         */
        String r = list.remove(2);

        /**
         * 求大小
         */
        int size = list.size();

        /**
         * 返回下标为0的数据
         */
        String get = list.get(2);

        /**
         * List遍历输出
         */
        for(String i : list){
                System.out.println(i);
        }
        for(int i = 0; i < list.size(); i++){
            System.out.print(list.get(i) + " ");
        }

        /**
         * ArrayList To 数组
         */
        String[] a = new String[list.size()];
        list.toArray(a);
        for(String i : a){
            System.out.println(i);
        }

        /**
         * 1.判断list是否含有a
         * 2.判断list是否含有list2
         */
        boolean boo = list.contains("a");
        boo = list.containsAll(list2);
    }
}

 

 

实际例子:

import java.util.ArrayList;
import java.util.List;

/**
 * @author yuanxuan-chen
 * @date 2020-03-04 22:33
 */
public class StudentList {
    public static void main(String[] args) {
        /**
         * 建立一个list1,包含 “张三,18岁,80分,1班”,“李四,19岁,100分,1班”,“王五,17岁,59分,1班”。
         */
        List<Student> list1 = new ArrayList<>();
        list1.add(new Student("张三", 18, 8, 1));
        list1.add(new Student("李四", 19, 100, 1));
        list1.add(new Student("王五", 17, 59, 1));

        /**
         * 建立一个list2,包含 “赵六,18岁,85分,2班”,“刘七,19岁,93分,2班”,“孙八,17岁,55分,2班”。
         */
        List<Student> list2 = new ArrayList<>();
        list2.add(new Student("赵六", 18, 85, 2));
        list2.add(new Student("刘七", 19, 93, 2));
        list2.add(new Student("孙八", 17, 55, 2));

        /*
         * (1)整合两个list学生信息成一个新的list
         */
        System.out.println("(1)整合两个list学生信息成一个新的list");
        List<Student> list = new ArrayList<>();
        list.addAll(list1);
        list.addAll(list2);

        for (Student i : list) {
            System.out.println(i);
        }

        /**
         * (2)按照分数给出学生信息排名
         */
        System.out.println("(2)按照分数给出学生信息排名");
        list.sort((o1, o2) -> o1.getStudentMark() > o2.getStudentMark() ? -1 : 0);
        for (Student i : list) {
            System.out.println(i);
        }

        /**
         * (3)输出不及格的学生信息v
         */
        System.out.println("(3)输出不及格的学生信息");
        for (Student i : list) {
            /**
             * 小于60的值输出
             */
            if(60 > i.getStudentMark()) {
                System.out.println(i);
            }
        }

        /**
         * (4)查找张三的信息
         */
        System.out.println("(4)查找张三的信息");
        for (Student i : list) {
            /**
             * 输出张三
             */
            if("张三".equals(i.getStudentName())) {
                System.out.println(i);
            }
        }

        /**
         * (5)从list剔除年龄大于18岁的学生信息
         */
        System.out.println("(5)从list剔除年龄大于18岁的学生信息");
        for (int i = 0; i<list.size(); i++) {
            /**
             *判断年龄是否大于18, 是就删除
             */
            if(18 < list.get(i).getStudentAge()) {
                list.remove(i--);
            }
        }
        /**
         * 遍历输出
         */
        for (Student i : list) {
            System.out.println(i);
        }

    }
}

 


import java.util.Objects;

/**
 * 实体类Student类,属性:姓名,年龄,成绩,班级
 * @author yuanxuan-chen
 * @date 2020-03-04 19:32
 */
public class Student {

    /**
     * 姓名
     */
    private String studentName;

    /**
     * 年龄
     */
    private int studentAge;

    /**
     * 成绩
     */
    private double studentMark;

    /**
     * 班级
     */
    private int studentGrade;

    /**
     * 构造函数
     */
    public Student(String studentName, int studentAge, double studentMark, int studentGrade) {
        this.studentName = studentName;
        this.studentAge = studentAge;
        this.studentMark = studentMark;
        this.studentGrade = studentGrade;
    }

    /**
     * @return 返回姓名
     */
    public String getStudentName() {
        return studentName;
    }

    /**
     * @return 返回学生年龄
     */
    public int getStudentAge() {
        return studentAge;
    }

    /**
     * @return 返回学生成绩
     */
    public double getStudentMark() {
        return studentMark;
    }

    /**
     * @return 返回学生成绩
     */
    public int getStudentGrade() {
        return studentGrade;
    }

    /**
     * 输出格式:“张三,18岁,80分,1班”
     */
    @Override
    public String toString() {
        return String.format("%s, %d岁, %6.2f分, %d班", studentName, studentAge, studentMark, studentGrade);
    }

    @Override
    public boolean equals(Object obj) {
        /**
         * 判断传入的类,是否为 目标实体类
         */
        if (obj instanceof Student) {
            /**
             * 强制类型转换
             */
            Student s = (Student) obj;

            /**
             * 设置比较方法
             */
            return this.studentName.equals(s.getStudentName()) && this.studentAge == s.getStudentAge() && this.studentMark == s.getStudentMark() && this.studentGrade == s.getStudentGrade();

        }
        return false;
    }

    @Override
    public int hashCode() {
        /**
         * 由idea自动生成
         * Objects.hash 自动生成hash散列表
         */
        return Objects.hash(studentName, studentAge, studentMark, studentGrade);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值