ArrayList基本使用

1. ArrayList基本使用

- ArrayList的基本使用
- 了解泛型,以及泛型作用
- 学生管理系统编写
  - 添加学生
  - 删除学生
  - 查找学生
  - 修改学生
  - 判断学号是否存在的方法

1. ArrayList入门

 import java.util.ArrayList;
    
    /*
        ArrayList:
            1.包结构
                java.util.ArrayList
            2.继承结构
                public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
            3.描述
                可调整大小的数组的实现
            4.构造方法
                ArrayList() 构造一个初始容量为十的空列表。
                ArrayList(int initialCapacity)构造具有指定初始容量的空列表。
            5.常用成员方法
                boolean add(E e) 将指定的元素追加到此列表的末尾。
     */
    public class Demo01 {
        public static void main(String[] args) {
            //定义数组存放48位位同学的成绩
            int [] scores = new int[48];
    
            //就业班 同学增加了15 这是班级有63位同学
            int[] socres2 = new int[63];
    
            //后期 还有同学进来 5 个 此时班级有68位同学
            int[] scores3 = new int[68];
    
            //需要一个可边长的数组,也就是说,当数据变多的时候,数组自动边长,当数据变少的时候自动变短
    
            //创建集合对象
            //ArrayList() 构造一个初始容量为十的空列表。
            ArrayList list = new ArrayList();
    
            //ArrayList(int initialCapacity)构造具有指定初始容量的空列表。
            ArrayList list1 = new ArrayList(32);
    
            //boolean add(E e) 将指定的元素追加到此列表的末尾。
            ArrayList list2 = new ArrayList();
            list2.add("宋永强");
            list2.add("岳晨阳");
            System.out.println(list2);
            list2.add(true);
            list2.add(123);
            list2.add(520);
            list2.add(13.14);
            list2.add('我');
            System.out.println(list2);
        }
    }

1.2 泛型

 import java.util.ArrayList;
    /*
        约束集合的数据类型,用<数据类型> 在创建对象的时候,放在类名的后面
        尖括号中的数据类型只能是引用数据类型
        这个尖括号叫泛型<>
    
        泛型的作用:
            就是用来约束,集合中存储数据的数据类型
    
     */
    public class Demo02 {
        public static void main(String[] args) {
            ArrayList list2 = new ArrayList();
            list2.add("宋永强");
            list2.add("岳晨阳");
            System.out.println(list2);
            list2.add(true);
            list2.add(123);
            list2.add(520);
            list2.add(13.14);
            list2.add('我');
            System.out.println(list2);
    
            ArrayList<String> list = new ArrayList<String>();
            list.add("宋永强");
            list.add("岳晨阳");
            /*list.add(true);
            list.add(3.14);
            list.add('爽');*/
            System.out.println(list);
        }
    }

1.3 插入元素获取元素

   import java.util.ArrayList;
    
    /*
        boolean add(E e) 将指定的元素追加到此列表的末尾。
        void add(int index, E element) 在此列表中的指定位置插入指定的元素。
    
        集合的底层是可变长数组,是数组就有索引,从0开始,到集合存储元素个数减一
    
        E get(int index) 返回此列表中指定位置的元素。
     */
    public class Demo03 {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            //添加元素
            list.add("韩淳逸");
            list.add("孙宇宁");
            list.add("宋永强");
            list.add("刘胜阳");
            list.add("毛玉龙");
            list.add("汪越");
            list.add("王俊");
            list.add("李爽");
            list.add("孔泉");
            System.out.println(list);
            //void add(int index, E element) 在此列表中的指定位置插入指定的元素。
            //根据index插入元素 ,指定index位置处的元素,以及后面元素都要后移以为
            list.add(1,"范靖");
            System.out.println(list);
    
            // E get(int index) 返回此列表中指定位置的元素。
            String s = list.get(8);
            System.out.println(s);
    
        }
    }

1.4 遍历集合

 import java.util.ArrayList;
    /*
        获取集合中所有元素,打印到控制台
    
       集合的底层是可变长数组,是数组就有索引,从0开始,到集合存储元素个数减一
    
       int size() 返回此列表中的元素数。
     */
    public class Demo04 {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            //添加元素
            list.add("韩淳逸");
            list.add("孙宇宁");
            list.add("宋永强");
            list.add("刘胜阳");
            list.add("毛玉龙");
            list.add("汪越");
            list.add("王俊");
            list.add("李爽");
            list.add("孔泉");
            list.add(1,"范靖");
            list.add(2,"蔡赛中");
            list.add(3,"曹世伦");
            //使用循环遍历集合
            for (int i = 0; i < 9; i++) {
                //System.out.println(i);
                String s = list.get(i);
                System.out.println(s);
            }
            System.out.println("--------------");
            int size = list.size();
            System.out.println(size);
            System.out.println("--------------");
            for (int i = 0; i < list.size(); i++) {
                String s = list.get(i);
                System.out.println(s);
            }
        }
    }

1.5 修改元素

  import java.util.ArrayList;
    /*
    E set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
    
        根据索引修改元素,返回被修改的元素
     */
    public class Demo05 {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            //添加元素
            list.add("韩淳逸");
            list.add("孙宇宁");
            list.add("宋永强");
            list.add("刘胜阳");
            list.add("毛玉龙");
            list.add("汪越");
            list.add("王俊");
            list.add("李爽");
            list.add("孔泉");
            list.add("范靖");
            list.add("蔡赛中");
            list.add("曹世伦");
            System.out.println(list);
    
            String s = list.set(7, "李爽爽");
            System.out.println(list);
            System.out.println(s);//李爽
        }
    }

1.6 删除元素

import java.util.ArrayList;

/*
    E remove(int index) 删除该列表中指定位置的元素。
    根据索引删除集合中的元素,返回值被删除的元素

    boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
 */
public class Demo06 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("林青霞");
        list.add("张曼玉");
        list.add("王祖贤");
        list.add("张曼玉");
        list.add("蔡徐坤");
        list.add("林志玲");
        list.add("东方不败");
        //E remove(int index) 删除该列表中指定位置的元素。
        System.out.println(list);
        String s = list.remove(0);
        System.out.println(list);

        System.out.println(s);

        //boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
        /*boolean b = list.remove("张曼玉");
        System.out.println(list);
        System.out.println(b);*/

        //boolean remove(Object o) 倒叙遍历 删除的也是第一个出现的
        System.out.println(list);
        for (int i = list.size() - 1; i >= 0; i--) {
            String s1 = list.get(i);
            if (s1.equals("张曼玉")){
                list.remove("张曼玉");break;
            }
        }
        System.out.println(list);

    }
}

1.7 练习

import java.util.ArrayList;
import java.util.Scanner;

/*
    存储学生对象并遍历
    创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
          学生的姓名和年龄来自于键盘录入

 */
public class Demo07 {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<Student> list = new ArrayList<>();
        //创建键盘录入的对象
        Scanner sc = new Scanner(System.in);
        //使用循环创建学生对象存储到集合中
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入学生的姓名:");
            String name = sc.next();
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            //创建学生对象
            Student student = new Student(name,age);
            //添加到集合中
            list.add(student);
        }

        //遍历集合获取学生信息
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            System.out.println(student.getName()+"..."+student.getAge());
        }
    }
}
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;
    }
}

1.8 删除元素的练习

  import java.util.ArrayList;
    
    /*
        删除集合中所有的张三
     */
    public class Demo08 {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            //添加元素
            list.add("韩淳逸");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("孙宇宁");
            list.add("宋永强");
            list.add("刘胜阳");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("张三");
            list.add("毛玉龙");
            list.add("汪越");
            list.add("王俊");
            list.add("李爽");
            list.add("孔泉");
        }
    }
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值