【05】Java入门05:Java集合

一、对象数组

1.对象数组概述  

    ①基本类型的数组:存储的元素为基本类型。

int[] arr={1,2,3,4}

    ②对象数组:存储的元素为引用类型。

Student[] stus = new Student[3];

二、集合类之ArrayList

1.集合概述

    我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。

2.ArrayList集合

    1) 集合类的特点

        长度可变。

    2) ArrayList<E>

        大小可变数组的实现。
        ①<E>:是一种特殊的数据类型,泛型。
        ②在出现E的地方我们使用引用数据类型替换即可。
        ③举例:ArrayList<String>,ArrayList<Student>。

    3) 构造方法

        ①ArrayList()。

    4) 添加元素

        ①public boolean add(Ee):添加元素。
        ②public void add(int index,Eelement):在指定的索引处添加一个元素。

    5) 代码案例

public class ArrayListDemo {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<String> array = new  ArrayList<String>();
       
        //add(E e):添加元素
        array.add("hello");
        array.add("world");
        array.add("java");
       
        //add(int index,E element):在指定的索引处添加一个元素
        //array.add(1, "android");
       
        System.out.println("array:"+array);
    }
}

3.ArrayList删改查方法  

    1) 获取元素

        ①public E get(int index):返回指定索引处的元素。
    2) 集合长度

        ①public int size():返回集合中的元素的个数。
    3) 删除元素

        ①public boolean remove(Object o):删除指定的元素,返回删除是否成功。
        ②public E remove(int index):删除指定索引处的元素,返回被删除的元素。

    4) 修改元素
        ①public E set(int index,E element):修改指定索引处的元素,返回被修改的元素。

    5) 代码案例

public class ArrayListDemo2 {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<String> array = new ArrayList<String>();
       
        //添加元素
        array.add("hello");
        array.add("world");
        array.add("java");
       
        //public E get(int index):返回指定索引处的元素
        //System.out.println("get:"+array.get(0));
        //System.out.println("get:"+array.get(1));
        //System.out.println("get:"+array.get(2));
       
        //public int size():返回集合中的元素的个数
        //System.out.println("size:"+array.size());
       
        //public boolean remove(Object o):删除指定的元素,返回删除是否成功
        //System.out.println("remove:"+array.remove("world"));//true
        //System.out.println("remove:"+array.remove("world"));//false
       
        //public E remove(int index):删除指定索引处的元素,返回被删除的元素
        //System.out.println("remove:"+array.remove(0));
       
        //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
        System.out.println("set:"+array.set(1, "android"));
       
        //输出
        System.out.println("array:"+array);
    }
}

4.以简单的学生管理系统为例,巩固ArrayList的使用

package manager;

public class Student {
    private String id;
    private String name;
    private String age;
    private String address;
	
    // 学生类的构造方法
    public Student(String id, String name, String age, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }
	
    // 学号的获取和重置
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
	
    // 姓名的获取和重置
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
	
    // 年龄的获取和重置
    public String getAge() {
        return this.age;
    }
    public void setAge(String age) {
        this.age = age;
    }
	
    // 地址的获取和重置
    public String getAddr() {
        return this.address;
    }
    public void setAddr(String address) {
        this.address = address;
    }
}
package manager;
import java.util.ArrayList;
/*
 * 	System.exit(0);
 * 	删除时,使用==查找不行,然后使用equals才可以
 */
import java.util.Scanner;

public class Manager {
    private static Student s;
    private static Scanner scan;
    public static void main(String[] args) {
        ArrayList<Student> array = new ArrayList<Student>();
        while(true) {
            System.out.println("--------学生管理系统欢迎您---------");
            System.out.println("   1:添加学生");
            System.out.println("   2:删除学生");
            System.out.println("   3:修改学生");
            System.out.println("   4:查找学生");
            System.out.println("   5:查看所有学生");
            System.out.println("   6:退出管理系统");
            System.out.println("请输入您的选择:");
			
            scan = new Scanner(System.in);
            String input = scan.nextLine();
				
            switch(input) {
                case "1":
                    addStu(array);
                    break;
                case "2":
                    // 删除
                    removeStu(array);
                    break;
                case "3":
                    // 修改
                    changeStu(array);
                    break;
                case "4":
                    // 查找
                    find(array);
                case "5":
                    // 查看所有
                    findAll(array);
                    break;
                case "6":
                    // 退出程序执行
                    System.exit(0);
                    break;
                default:
                    System.out.println("请输入1-6的范围");
                    break;
            }
        }
    }
    // 添加学生
    public static void addStu(ArrayList<Student> array) {
        System.out.println("请输入添加学生编号:");
        String id = scan.nextLine();
        System.out.println("请输入该学生姓名:");
        String name = scan.nextLine();
        System.out.println("请输入该学生年龄:");
        String age = scan.nextLine();
        System.out.println("请输入您想添加的地址:");
        String address = scan.nextLine();
	
        s = new Student(id, name, age, address);
        array.add(s);
        System.out.println("添加学生成功...");
    }
    // 删除学生
    public static void removeStu(ArrayList<Student> array) {
        if(array.size()==0) {
            System.out.println("不好意思,当前没有学生信息可供删除,请回去重试!");
            return;
        }
        System.out.println("请输入需要删除学生的姓名:");
        String input = scan.nextLine();
        for(int i=0; i<array.size(); i++) {
            s = array.get(i);
            if(input.equals(s.getName())) {
                array.remove(i);
            }else {
                System.out.println("不好意思,学生系统中没有这个学生");
            }
        }
		
    }
    // 修改学生信息
    public static void changeStu(ArrayList<Student> array) {
        if(array.size()==0) {
            System.out.println("不好意思,当前没有学生信息可供修改,请回去重试!");
            return;
        }
        System.out.println("请输入需要修改学生的姓名:");
        String input = scan.nextLine();
        for(int i=0; i<array.size(); i++) {
            s = array.get(i);
            if(input.equals(s.getName())) {
                System.out.println("请输入修改后的学生编号:");
                String id = scan.nextLine();
                s.setId(id);
                System.out.println("请输入修改后的学生姓名:");
                String name = scan.nextLine();
                s.setName(name);
                System.out.println("请输入修改后的学生年龄:");
                String age = scan.nextLine();
                s.setAge(age);
                System.out.println("请输入修改后的的地址:");
                String address = scan.nextLine();
                s.setAddr(address);
                System.out.println("修改完毕");
            }
        }
    }
    // 查找学生信息
    public static void find(ArrayList<Student> array) {
        if(array.size()==0) {
            System.out.println("不好意思,当前没有学生信息可供修改,请回去重试!");
            return;
        }
        System.out.println("请输入需要查找的姓名:");
        String input = scan.nextLine();
        for(int i=0; i<array.size(); i++) {
            if(input.equals(s.getName())) {
                System.out.println("找到了...");
            }
        }
    }
    // 查看所有学生
    public static void findAll(ArrayList<Student> array) {
        if(array.size() == 0) {
            System.out.println("不好意思,当前没有学生信息可供查询,请回去重试!");
            return;
        }
        //"\t"是一个tab键
        System.out.println("学号\t姓名\t年龄\t地址");
        for(int i=0; i<array.size(); i++) {
            // 从集合中取出一个学生信息
            s = array.get(i);
            System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddr());
        }
    }
}
posted @ 2020-06-05 23:03  代码打碟手  阅读(215)  评论(0编辑  收藏  举报