Java零基础入门到精通_Day 9

1.ArrayList

编程的时候如果要存储多个数据,使用长度固定的数组存储格式,不一定满足我们的需求,更适应不了变化的需求,那么,此时该如何选择呢?

集 合

集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变集合类有很多,目前我们先学习一个:ArrayList

2.ArrayList构造方法和添加方法

java 复制代码
package Base_one.Base_009;

import java.util.ArrayList;

public class ArrayListDemo1 {
    public static void main(String[] args) {
//      ArrayList<String> array =  new ArrayList<>();
        ArrayList<String> array =  new ArrayList<String>();
        System.out.println(array); //[]
        System.out.println(array.add("hello"));
        System.out.println(array);
        array.add("world");
        System.out.println(array);

        array.add(1,"javase");
        array.add(3,"javaee");
        System.out.println(array);

        array.add(5,"sed"); // .IndexOutOfBoundsException 集合索引越界

    }
}

3.ArrayList 存储字符串并遍历

java 复制代码
package Base_one.Base_009;

import java.util.ArrayList;

public class ArrayListTest1 {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("a");
        arrayList.add("b");
        arrayList.add("c");
        arrayList.add("e");
        System.out.println(arrayList);

        // 遍历
        for (int i=0; i<arrayList.size();i++){
            String s = arrayList.get(i);
            System.out.println(s);
        }

    }
}

4. ArrayList 集合常用方法

java 复制代码
package Base_one.Base_009;

import java.util.AbstractList;
import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        AbstractList<String> arr = new ArrayList<String>();
        arr.add("a");
        arr.add("b");
        arr.add("c");
        System.out.println(arr);
        System.out.println(arr.remove(0));
        System.out.println(arr.remove("b"));
        System.out.println(arr);
        System.out.println(arr.set(0,"e"));
        System.out.println(arr);
        System.out.println(arr.get(0));
        System.out.println(arr.size());
    }
}

5. 存储学生对象并遍历

java 复制代码
package Base_one.Base_009;

public class Studet {
    private String name;
    private int age;
    public Studet(){}
    public Studet(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;
    }
}
java 复制代码
package Base_one.Base_009;

import java.util.AbstractList;
import java.util.ArrayList;

public class StudentTest {
    public static void main(String[] args) {
        // 创建集合对象
        ArrayList<Studet> array = new ArrayList<Studet>();
        // 创建学生对象
        Studet s1 = new Studet("Tom",18);
        Studet s2 = new Studet("Alo",20);
        Studet s3 = new Studet("Tina",22);
        // 添加学生对象到集合中
        array.add(s1);
        array.add(s2);
        array.add(s3);
        System.out.println(array); // 输出的都是地址了
        for(int i= 0;i< array.size();i++){
            Studet s = array.get(i);
            System.out.println(s.getName()+","+s.getAge());
        }
    }
}

6.升级版本

java 复制代码
package Base_one.Base_009;

public class Studentpro {
    private String name;
    private String age;

    public Studentpro() {
    }

    public Studentpro(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}
java 复制代码
package Base_one.Base_009;
import java.util.ArrayList;
import java.util.Scanner;

public class StudentProTest {
    public static void main(String[] args) {
        ArrayList<Studentpro> array = new ArrayList<Studentpro>();
        Scanner sc = new Scanner(System.in);
        System.out.println("输入你要添加几个学生对象:");
        int cout = sc.nextInt();
        for (int i = 0;i<cout;i++){
            System.out.println(String.format("第%d个对象",i));
            addStudentObject(array);
        }
        // 遍历输出
        for (int i = 0;i<array.size();i++){
            Studentpro s = array.get(i);
            System.out.println(s.getName()+","+s.getAge());
        }

    }
    // 定义方法 返回值void类型 参数类型为ArrayList
    public static void addStudentObject(ArrayList<Studentpro> array){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名:");
        String name = sc.nextLine();
        System.out.println("请输入年龄");
        String age = sc.nextLine();
        Studentpro s = new Studentpro();
        s.setName(name);
        s.setAge(age);
        array.add(s);
    }
}
相关推荐
真上帝的左手40 分钟前
10. 软件设计&架构-Spring Security 7 整合CAS SSO 单点登录
java·spring·架构·sso
Wzx19801244 分钟前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
Python私教1 小时前
签名 URL 刷新导致审批失效?别急着删掉所有 query
python·安全
牧羊人.3331 小时前
Python 办公自动化从入门到入土|09 数据容器之字典
开发语言·python
Zane19941 小时前
单例线程安全、生产者消费者、死锁:并发面试三连问串讲
java·后端
小僧景贤1 小时前
嵌入式C语言 第二篇:基础语法|嵌入式C与标准C的核心差异
c语言·开发语言·嵌入式c语言
Zane19941 小时前
类变量与实例变量:一个共享列表引发的线上事故
后端·python
阿pin1 小时前
Android随笔-AIDL
android·开发语言·aidl
Python私教1 小时前
一次性批准令牌:挡住旧授权误发新版本的工程设计
python·安全
for_ever_love__2 小时前
python基础语法学习: 数据容器
windows·python·学习