ArrayList 编程实例

学校的教务系统会对学生进行统一的管理,每一个学生都会有一个学号和学生姓名,我们在维护整个系统的时候,大多数操作是对学生的添加、插入、删除、修改等操作。

import java.util.*;
public class ListTest {

//集合后面的<>代表泛型的意思
//泛型是规定了集合元素的类型
/**
 * 用于存放学生的List
 */
public List<Student> students;


public ListTest() {
    this.students = new ArrayList<Student>();
}

/**
 * 用于往students中添加学生
 */
public void testAdd() {
    // 创建一个学生对象,并通过调用add方法,添加到学生管理List中
    Student st1 = new Student("1", "张三");
    students.add(st1);

    // 取出 List中的Student对象 索引为0 也就是第一个
    Student temp = students.get(0);
    System.out.println("添加了学生:" + temp.id + ":" + temp.name);

    Student st2 = new Student("2", "李四");
    //添加到list中,插入到索引为0的位置,也就是第一个
    students.add(0, st2);
    Student temp2 = students.get(0);
    System.out.println("添加了学生:" + temp2.id + ":" + temp2.name);

    // 对象数组的形式添加
    Student[] student = {new Student("3", "王五"), new Student("4", "马六")};

    // Arrays类包含用来操作数组(比如排序和搜索)的各种方法,asList() 方法用来返回一个受指定数组支持的固定大小的列表
    students.addAll(Arrays.asList(student));
    Student temp3 = students.get(2);
    Student temp4 = students.get(3);
    System.out.println("添加了学生:" + temp3.id + ":" + temp3.name);
    System.out.println("添加了学生:" + temp4.id + ":" + temp4.name);
    Student[] student2 = {new Student("5", "周七"), new Student("6", "赵八")};
    students.addAll(2, Arrays.asList(student2));
    Student temp5 = students.get(2);
    Student temp6 = students.get(3);
    System.out.println("添加了学生:" + temp5.id + ":" + temp5.name);
    System.out.println("添加了学生:" + temp6.id + ":" + temp6.name);
}


/**
 * 取得List中的元素的方法
 */
public void testGet() {
    int size = students.size();
    for (int i = 0; i < size; i++) {
        Student st = students.get(i);
        System.out.println("学生:" + st.id + ":" + st.name);

    }
}


/**
 * 通过迭代器来遍历
 * 迭代器的工作是遍历并选择序列中的对象,Java 中 Iterator 只能单向移动
 */
public void testIterator() {
    // 通过集合的iterator方法,取得迭代器实例
    Iterator<Student> it = students.iterator();
    System.out.println("有如下学生(通过迭代器访问):");
    while (it.hasNext()) {

        Student st = it.next();
        System.out.println("学生" + st.id + ":" + st.name);
    }
}

/**
 * 通过for each 方法访问集合元素
 *
 */
public void testForEach() {
    System.out.println("有如下学生(通过for each):");
    for (Student obj : students) {
        Student st = obj;
        System.out.println("学生:" + st.id + ":" + st.name);
    }
    //使用java8 Steam将学生排序后输出
    students.stream()//创建Stream
            //通过学生id排序
            .sorted(Comparator.comparing(x -> x.id))
            //输出
            .forEach(System.out::println);
}

/**
 * 修改List中的元素
 *
 */
public void testModify() {
    students.set(4, new Student("3", "吴酒"));
}

/**
 * 删除List中的元素
 *
 */
public void testRemove() {
    Student st = students.get(4);
    System.out.println("我是学生:" + st.id + ":" + st.name + ",我即将被删除");
    students.remove(st);
    System.out.println("成功删除学生!");
    testForEach();
}


public static void main(String[] args) {
    ListTest lt = new ListTest();
    lt.testAdd();
    lt.testGet();
    lt.testIterator();
    lt.testModify();
    lt.testForEach();
    lt.testRemove();

}

}
编辑器结果:
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值