怎么用JAVA实现通讯录系统的分组和分组查询

问题遇到的现象和发生背景

怎么用java语言实现下面这个程序的分组和分组查询啊?急

用代码块功能插入代码,请勿粘贴截图
Student类
package edu;

public class Student {
//姓名
    private static String name;
    //院系
    private String faculties;
    //班级
    private String banji;
    //邮箱
    private String postbox;
    //手机号
    private String number;
    
    public Student() {
    }
    public Student(String name,String faculties,String banji,String letter,String postbox,String number,String group) {
        this.name=name;
        this.faculties=faculties;
        this.banji=banji;
        this.postbox=postbox;
        this.number=number;
        
    }
    public void setName(String name) {
        this.name=name;
    }
    public String getName() {
        return name;
    }
    public void setFaculties(String faculties) {
        this.faculties=faculties;
    }
    public String getFaculties() {
        return faculties;
    }
    public void setBanji(String banji) {
        this.banji=banji;
    }
    public String getBanji() {
        return banji;
    }
    public void setPostbox(String postbox) {
        this.postbox=postbox;
    }
    public String getPostbox() {
        return postbox;
    }
    public void setNumber(String number) {
        this.number=number;
    }
    public String getNumber() {
        return number;
    }
    
    
}


StudentManager类
package edu;

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

public class StudentManager {


private static int i;
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("请输入你的选择");
    Scanner sc = new Scanner(System.in);
    String line = sc.nextLine();
    switch(line) {
    case "1":
        //System.out.println("增加");
        addStudent(array);
        break;
    case "2":
        //System.out.println("删除");
        deleteStudent(array);
        break;
    case "3":
        //System.out.println("修改");
        updateStudent(array);
        break;
    case "4":
        //System.out.println("查询");
        findAllStudent(array);
        break;
    case "5":
        System.out.println("退出");
        System.out.println("谢谢使用");
    return;
    }
    }
}
public static void addStudent(ArrayList<Student> array) {//定义一个方法用于添加信息
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入姓名:");
    String name = sc.nextLine();
    System.out.println("请输入院系:");
    String faculties = sc.nextLine();
    System.out.println("请输入班级:");
    String banji = sc.nextLine();
    System.out.println("请输入邮箱:");
    String postbox = sc.nextLine();
    System.out.println("请输入手机号:");
    String number = sc.nextLine();
    
    //创建对象,把键盘录入的数据赋值给学生对象的成员变量
    Student s = new Student();
    s.setName(name);
    s.setFaculties(faculties);
    s.setBanji(banji);
    s.setPostbox(postbox);
    s.setNumber(number);

    //将对象添加到和集中
    array.add(s);
    //给出添加成功提示
    System.out.println("添加成功");
}
//定义一个方法用于查看信息
public static void findAllStudent(ArrayList<Student> array) {
    if(array.size() == 0) {
        System.out.println("无信息,请先添加信息再查询");
        return;
    }
    System.out.println("姓名   院系   班级   邮箱  手机号");
    for(int i=0;i<array.size();i++) {
        Student s = array.get(i);
        System.out.println(s.getName()+" "+s.getFaculties()+" "+s.getBanji()+" "+s.getPostbox()+" "+s.getNumber());
    }
}

//定义一个方法用来删除信息
public static void deleteStudent(ArrayList<Student> array) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你要删除的信息");
    String name = sc.nextLine();
    for(int i=0;i<array.size();i++) {
        Student s = array.get(i);
        if(s.getName().equals(name)) {
            array.remove(i);
            break;
        }
    }
    System.out.println("删除成功");
}
//定义一个方法用来修改信息
public static void updateStudent(ArrayList<Student> array) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入要修改的姓名");
    String name = sc.nextLine();
    System.out.println("请输入新院系");
    String faculties = sc.nextLine();
    System.out.println("请输入新班级");
    String banji = sc.nextLine();
    System.out.println("请输入新邮箱");
    String postbox = sc.nextLine();
    System.out.println("请输入新手机号");
    String number = sc.nextLine();
    Student s  = new Student();
    s.setName(name);
    s.setFaculties(faculties);
    s.setBanji(banji);
    s.setPostbox(postbox);
    s.setNumber(number);
    for(int i=0;i<array.size();i++) {
        Student student = array.get(i);
    if(student.getName().equals(name)) {
        array.set(i, s);
        break;
    }
    }
    System.out.println("修改成功");
}

}

我想要达到的结果

怎么让他实现分类和分类查询的功能?

怎么个分类与分类查询,看效果图

img



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

public class StudentManager {

    private static int i;
    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("请输入你的选择");
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            switch(line) {
                case "1":
                    //System.out.println("增加");
                    addStudent(array);
                    break;
                case "2":
                    //System.out.println("删除");
                    deleteStudent(array);
                    break;
                case "3":
                    //System.out.println("修改");
                    updateStudent(array);
                    break;
                case "4":
                    //System.out.println("查询");
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("退出");
                    System.out.println("谢谢使用");
                    return;
            }
        }
    }
    public static void addStudent(ArrayList<Student> array) {//定义一个方法用于添加信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名:");
        String name = sc.nextLine();
        System.out.println("请输入院系:");
        String faculties = sc.nextLine();
        System.out.println("请输入班级:");
        String banji = sc.nextLine();
        System.out.println("请输入邮箱:");
        String postbox = sc.nextLine();
        System.out.println("请输入手机号:");
        String number = sc.nextLine();

        //创建对象,把键盘录入的数据赋值给学生对象的成员变量
        Student s = new Student();
        s.setName(name);
        s.setFaculties(faculties);
        s.setBanji(banji);
        s.setPostbox(postbox);
        s.setNumber(number);

        //将对象添加到和集中
        array.add(s);
        //给出添加成功提示
        System.out.println("添加成功");
    }
    //定义一个方法用于查看信息
    public static void findAllStudent(ArrayList<Student> array) {
        Scanner sc1 =new Scanner(System.in);
        if(array.size() == 0) {
            System.out.println("无信息,请先添加信息再查询");
            return;
        }
        System.out.println("全校的学生信息:");
        System.out.println("姓名   院系   班级   邮箱  手机号");
        for(int i=0;i<array.size();i++) {
            Student s = array.get(i);
            System.out.println(s.getName()+" "+s.getFaculties()+" "+s.getBanji()+" "+s.getPostbox()+" "+s.getNumber());
        }
        System.out.println("------------------");
        System.out.println("1、按学院分组查询");
        System.out.println("2、按班级分组查询");

        String line = sc1.nextLine();
        switch (line)
        {
            case "1":
                System.out.println("请输入你要查询的学院信息(输入学院名):");
                String xueyuan=sc1.nextLine();
                int i;
                System.out.println("姓名   院系   班级   邮箱  手机号");
                for(i=0;i< array.size();i++){
                    Student s = array.get(i);
                    if(s.getFaculties().equals(xueyuan)){System.out.println(s.getName()+" "+s.getFaculties()+" "+s.getBanji()+" "+s.getPostbox()+" "+s.getNumber());}
                    else{continue;}
                }
                break;
            case "2":
                System.out.println("请输入你要查询的班级信息(输入班级名):");
                String banji1=sc1.nextLine();
                System.out.println("姓名   院系   班级   邮箱  手机号");
                for(i=0;i< array.size();i++){
                    Student s = array.get(i);
                    if(s.getBanji().equals(banji1)){System.out.println(s.getName()+" "+s.getFaculties()+" "+s.getBanji()+" "+s.getPostbox()+" "+s.getNumber());}
                    else{continue;}
                }
                break;
        }
    }

    //定义一个方法用来删除信息
    public static void deleteStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的信息");
        String name = sc.nextLine();
        for(int i=0;i<array.size();i++) {
            Student s = array.get(i);
            if(s.getName().equals(name)) {
                array.remove(i);
                break;
            }
        }
        System.out.println("删除成功");
    }
    //定义一个方法用来修改信息
    public static void updateStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的姓名");
        String name = sc.nextLine();
        System.out.println("请输入新院系");
        String faculties = sc.nextLine();
        System.out.println("请输入新班级");
        String banji = sc.nextLine();
        System.out.println("请输入新邮箱");
        String postbox = sc.nextLine();
        System.out.println("请输入新手机号");
        String number = sc.nextLine();
        Student s  = new Student();
        s.setName(name);
        s.setFaculties(faculties);
        s.setBanji(banji);
        s.setPostbox(postbox);
        s.setNumber(number);
        for(int i=0;i<array.size();i++) {
            Student student = array.get(i);
            if(student.getName().equals(name)) {
                array.set(i, s);
                break;
            }
        }
        System.out.println("修改成功");
    }

}

public class Student {
    //姓名
    private  String name;
    //院系
    private String faculties;
    //班级
    private String banji;
    //邮箱
    private String postbox;
    //手机号
    private String number;

    public Student() {
    }
    public Student(String name,String faculties,String banji,String letter,String postbox,String number,String group) {
        this.name=name;
        this.faculties=faculties;
        this.banji=banji;
        this.postbox=postbox;
        this.number=number;

    }
    public void setName(String name) {
        this.name=name;
    }
    public String getName() {
        return name;
    }
    public void setFaculties(String faculties) {
        this.faculties=faculties;
    }
    public String getFaculties() {
        return faculties;
    }
    public void setBanji(String banji) {
        this.banji=banji;
    }
    public String getBanji() {
        return banji;
    }
    public void setPostbox(String postbox) {
        this.postbox=postbox;
    }
    public String getPostbox() {
        return postbox;
    }
    public void setNumber(String number) {
        this.number=number;
    }
    public String getNumber() {
        return number;
    }


}


举例子说明一下你想要的效果

package ed;

public class Student {
    //姓名
    private String name;
    //院系
    private String faculties;
    //班级
    private String banji;
    //邮箱
    private String postbox;
    //手机号
    private String number;

    public Student() {
    }

    public Student(String name, String faculties, String banji, String letter, String postbox, String number, String group) {
        this.name = name;
        this.faculties = faculties;
        this.banji = banji;
        this.postbox = postbox;
        this.number = number;
    }

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

    public String getName() {
        return name;
    }

    public void setFaculties(String faculties) {
        this.faculties = faculties;
    }

    public String getFaculties() {
        return faculties;
    }

    public void setBanji(String banji) {
        this.banji = banji;
    }

    public String getBanji() {
        return banji;
    }

    public void setPostbox(String postbox) {
        this.postbox = postbox;
    }

    public String getPostbox() {
        return postbox;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getNumber() {
        return number;
    }

}

package edu;

import ed.Student;

import java.util.*;

public class StudentManager {

    private static int i;

    public static void main(String[] args) {
        //创建集合对象用于存储数据
        ArrayList<Student> array = new ArrayList<Student>();
        final HashMap<String, ArrayList<Integer>> group = new HashMap<>();
        if (true) {
            final Student e = new Student();
            e.setName("张三");
            array.add(e);
            final Student e1 = new Student();
            e1.setName("李四");
            array.add(e1);
            group.put("test01", new ArrayList<>());
        }
        while (true) {
            System.out.println("--------欢迎来到通讯录管理系统------");
            System.out.println("1 增加");
            System.out.println("2 删除");
            System.out.println("3 修改");
            System.out.println("4 查询");
            System.out.println("6 创建分组");
            System.out.println("7 将人员放入分组");
            System.out.println("8 检索分组");
            System.out.println("5 退出");
            System.out.println("请输入你的选择");
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            switch (line) {
                case "1":
                    //System.out.println("增加");
                    addStudent(array);
                    break;
                case "2":
                    //System.out.println("删除");
                    deleteStudent(array);
                    break;
                case "3":
                    //System.out.println("修改");
                    updateStudent(array);
                    break;
                case "4":
                    //System.out.println("查询");
                    findAllStudent(array);
                    break;
                case "6":
                    System.out.println("请输入分组名:");
                    group.put(sc.nextLine(), new ArrayList<>());
                    break;
                case "7":
                    final String[] keys = group.keySet().toArray(new String[0]);
                    for (int j = 0; j < keys.length; j++) {
                        System.out.println((j + 1) + ":" + keys[j]);
                    }
                    System.out.println("请输入分组Id:");
                    final ArrayList<Integer> integers = group.get(keys[sc.nextInt() - 1]);
                    for (int j = 0; j < array.size(); j++) {
                        System.out.println((j + 1) + ":" + array.get(j).getName());
                    }
                    System.out.println("请输入添加分组的学生ID:");
                    sc.nextLine();
                    final String[] data = sc.nextLine().split(" ");
                    for (String j : data) {
                        integers.add(Integer.valueOf(j) - 1);
                    }
                    break;
                case "8":
                    final String groupName = sc.nextLine();
                    final ArrayList<Integer> integers1 = group.get(groupName);
                    for (int j = 0; j < integers1.size(); j++) {
                        System.out.println((j + 1) + " " + array.get(j).getName());
                    }
                    break;
                case "5":
                    System.out.println("退出");
                    System.out.println("谢谢使用");
                    return;
            }
        }
    }

    public static void addStudent(ArrayList<Student> array) {//定义一个方法用于添加信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名:");
        String name = sc.nextLine();
        System.out.println("请输入院系:");
        String faculties = sc.nextLine();
        System.out.println("请输入班级:");
        String banji = sc.nextLine();
        System.out.println("请输入邮箱:");
        String postbox = sc.nextLine();
        System.out.println("请输入手机号:");
        String number = sc.nextLine();
        //创建对象,把键盘录入的数据赋值给学生对象的成员变量
        Student s = new Student();
        s.setName(name);
        s.setFaculties(faculties);
        s.setBanji(banji);
        s.setPostbox(postbox);
        s.setNumber(number);
        //将对象添加到和集中
        array.add(s);
        //给出添加成功提示
        System.out.println("添加成功");
    }

    //定义一个方法用于查看信息
    public static void findAllStudent(ArrayList<Student> array) {
        if (array.size() == 0) {
            System.out.println("无信息,请先添加信息再查询");
            return;
        }
        System.out.println("姓名   院系   班级   邮箱  手机号");
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getName() + " " + s.getFaculties() + " " + s.getBanji() + " " + s.getPostbox() + " " + s.getNumber());
        }
    }

    //定义一个方法用来删除信息
    public static void deleteStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的信息");
        String name = sc.nextLine();
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getName().equals(name)) {
                array.remove(i);
                break;
            }
        }
        System.out.println("删除成功");
    }

    //定义一个方法用来修改信息
    public static void updateStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的姓名");
        String name = sc.nextLine();
        System.out.println("请输入新院系");
        String faculties = sc.nextLine();
        System.out.println("请输入新班级");
        String banji = sc.nextLine();
        System.out.println("请输入新邮箱");
        String postbox = sc.nextLine();
        System.out.println("请输入新手机号");
        String number = sc.nextLine();
        Student s = new Student();
        s.setName(name);
        s.setFaculties(faculties);
        s.setBanji(banji);
        s.setPostbox(postbox);
        s.setNumber(number);
        for (int i = 0; i < array.size(); i++) {
            Student student = array.get(i);
            if (student.getName().equals(name)) {
                array.set(i, s);
                break;
            }
        }
        System.out.println("修改成功");
    }
}

回答:简单写了你想要的分组,学生信息,写起来并不难

package edu;

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

/**
 * @author Administrator
 */
public class StudentManager {
    public static void main(String[] args) {
        ArrayList<Student> array = new ArrayList<>(5);

        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("请输入你的选择");
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            switch (line) {
                case "1":
                    addStudent(array);
                    break;
                case "2":
                    deleteStudent(array);
                    break;
                case "3":
                    updateStudent(array);
                    break;
                case "4":
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("退出");
                    System.out.println("谢谢使用");
                    return;
                default:
                    System.out.println("输入有误");
                    break;
            }
        }
    }

    public static void addStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入姓名:");
        String name = sc.nextLine();

        System.out.println("请输入院系:");
        String faculties = sc.nextLine();

        System.out.println("请输入班级:");
        String className = sc.nextLine();

        System.out.println("请输入邮箱:");
        String postbox = sc.nextLine();

        System.out.println("请输入手机号:");
        String number = sc.nextLine();

        System.out.println("请输入分组:");
        String group = sc.nextLine();

        Student s = new Student();
        s.setName(name);
        s.setFaculties(faculties);
        s.setClassName(className);
        s.setPostbox(postbox);
        s.setNumber(number);
        s.setGroup(group);

        array.add(s);
        System.out.println("添加成功");
    }

    public static void findAllStudent(ArrayList<Student> array) {
        if (array.size() == 0) {
            System.out.println("无信息,请先添加信息再查询");
            return;
        }
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要查询的学生分组");
        String group = sc.nextLine();
        System.out.println("姓名   院系   班级   邮箱  手机号 分组");
        for (Student s : array) {
            if (Objects.equals(s.getGroup(), group)) {
                System.out.println(s.getName() + " " + s.getFaculties() + " " + s.getClassName() + " " + s.getPostbox() + " " + s.getNumber() + " " + s.getGroup());
            }
        }
    }

    public static void deleteStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的学生姓名");
        String name = sc.nextLine();
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getName().equals(name)) {
                array.remove(i);
                break;
            }
        }
        System.out.println("删除成功");
    }

    public static void updateStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入要修改的姓名");
        String name = sc.nextLine();

        System.out.println("请输入新院系");
        String faculties = sc.nextLine();

        System.out.println("请输入新班级");
        String className = sc.nextLine();

        System.out.println("请输入新邮箱");
        String postbox = sc.nextLine();

        System.out.println("请输入新手机号");
        String number = sc.nextLine();

        System.out.println("请输入分组:");
        String group = sc.nextLine();

        Student s = new Student();
        s.setName(name);
        s.setFaculties(faculties);
        s.setClassName(className);
        s.setPostbox(postbox);
        s.setNumber(number);
        s.setGroup(group);

        for (int i = 0; i < array.size(); i++) {
            Student student = array.get(i);
            if (student.getName().equals(name)) {
                array.set(i, s);
                break;
            }
        }
        System.out.println("修改成功");
    }
}
package edu;

/**
 * 学生类
 * @author Administrator
 */
public class Student {
    /**
     * 姓名、院系、班级、邮箱、手机号、分组(分组暂定为 组长、一般同学、学习委员、班长 等)
     */
    private String name;
    private String faculties;
    private String className;
    private String postbox;
    private String number;
    private String group;

    public Student() {
    }

    public Student(String name, String faculties, String banji, String letter, String postbox, String number, String group) {
        this.name = name;
        this.faculties = faculties;
        this.className = banji;
        this.postbox = postbox;
        this.number = number;
        this.group = group;
    }

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

    public String getName() {
        return name;
    }

    public void setFaculties(String faculties) {
        this.faculties = faculties;
    }

    public String getFaculties() {
        return faculties;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getClassName() {
        return className;
    }

    public void setPostbox(String postbox) {
        this.postbox = postbox;
    }

    public String getPostbox() {
        return postbox;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getNumber() {
        return number;
    }

    public String getGroup() {
        return group;
    }

    public void setGroup(String group) {
        this.group = group;
    }
}

img


帮你把代码格式调了一下。