Java 从二维数组返回多个匹配项

Java 从二维数组返回多个匹配项,java,arrays,search,Java,Arrays,Search,我在使用2d数组编写基本程序时遇到困难。我正在尝试这样做,如果搜索匹配多个结果,则返回所有相关结果。在本例中,我试图使“CIS101”同时返回[0][I]和[4][I]。我已经看到了一些关于创建对象或分组数组的信息,但我不知道如何在这里正确应用它们。任何帮助都将不胜感激 import java.util.*; class TimesAndInstructors{ public static void main(String[] args) { final int Courses = 5

我在使用2d数组编写基本程序时遇到困难。我正在尝试这样做,如果搜索匹配多个结果,则返回所有相关结果。在本例中,我试图使“CIS101”同时返回
[0][I]
[4][I]
。我已经看到了一些关于创建对象或分组数组的信息,但我不知道如何在这里正确应用它们。任何帮助都将不胜感激

import java.util.*;
class TimesAndInstructors{
public static void main(String[] args) {

    final int Courses = 5;
    final int Details = 3;

    String[][] CourseInfo = new String[Courses][Details];

    CourseInfo[0][0] = "CIS101";
    CourseInfo[0][1] = "Mon 9 a.m.";
    CourseInfo[0][2] = "Farrel";

    CourseInfo[1][0] = "CIS210";
    CourseInfo[1][1] = "Mon 11 a.m.";
    CourseInfo[1][2] = "Patel";

    CourseInfo[2][0] = "MKT100";
    CourseInfo[2][1] = "Tues 8:30 a.m.";
    CourseInfo[2][2] = "Wong";

    CourseInfo[3][0] = "ACC150";
    CourseInfo[3][1] = "Tues 6 p.m.";
    CourseInfo[3][2] = "Deitrich";

    CourseInfo[4][0] = "CIS101";
    CourseInfo[4][1] = "Fri 1 p.m.";
    CourseInfo[4][2] = "Lennon";

    System.out.println("Enter college course ID: ");
    Scanner input = new Scanner(System.in);

    String CourseID = input.nextLine();
    String ClassTime;
    String Instructor;

    ClassTime = FirstClass(CourseInfo, CourseID);
    Instructor = Instructor(CourseInfo, CourseID);

    if(ClassTime!= null){
        System.out.println("Course name: " + CourseID
                + "\nProfessor name: " + Instructor
                + "\nFirst class: " + ClassTime);

    }else{
        System.out.println("Invalid Entry:"
                + "\nCourse ID is 3 letters followed by 3 numbers.");
    }
}
private static String Instructor(String[][] CourseInfo, String CourseID) {
    String Professor = null;

    boolean found = false;

    for (int i = 0; i < CourseInfo.length && !found; i++){
        if (CourseInfo[i][0].equals(CourseID)){
            Professor = CourseInfo[i][2];
            found = true;
        }
    }
    return Professor;
}
private static String FirstClass(String[][] CourseInfo, String CourseID) {
    String Time = null;

    boolean found = false;

    for (int i = 0; i < CourseInfo.length && !found; i++){
        if (CourseInfo[i][0].equals(CourseID)){
            Time = CourseInfo[i][1];
            found = true;
        }
    }
    return Time;
    }
}
import java.util.*;
类TimesAndInstructors{
公共静态void main(字符串[]args){
期末综合课程=5门;
最终整数细节=3;
字符串[][]课程信息=新字符串[课程][详细信息];
CourseInfo[0][0]=“CIS101”;
CourseInfo[0][1]=“周一上午9点”;
CourseInfo[0][2]=“Farrel”;
CourseInfo[1][0]=“CIS210”;
CourseInfo[1][1]=“周一上午11点”;
CourseInfo[1][2]=“Patel”;
CourseInfo[2][0]=“MKT100”;
课程资讯[2][1]=“周二上午8:30”;
课程资讯[2][2]=“黄”;
课程信息[3][0]=“ACC150”;
CourseInfo[3][1]=“周二下午6点”;
CourseInfo[3][2]=“Deitrich”;
CourseInfo[4][0]=“CIS101”;
课程资讯[4][1]=“星期五下午1时”;
CourseInfo[4][2]=“列侬”;
System.out.println(“输入大学课程ID:”);
扫描仪输入=新扫描仪(System.in);
字符串CourseID=input.nextLine();
字符串类时间;
弦乐指导员;
ClassTime=头等舱(CourseInfo,CourseID);
讲师=讲师(CourseInfo,CourseID);
if(ClassTime!=null){
System.out.println(“课程名称:”+CourseID
+“\n讲师姓名:”+讲师
+“\n第一类:”+ClassTime);
}否则{
System.out.println(“无效条目:”
+“\n课程ID是3个字母,后跟3个数字。”);
}
}
私人静态字符串讲师(字符串[][]CourseInfo,字符串CourseID){
字符串=空;
布尔值=false;
对于(int i=0;i
您可以使用
ArrayList
作为返回类型。如果它是空的,那么您知道没有找到匹配项。以下代码适用于您的
讲师
方法,您也可以采用其他方法:

private static ArrayList<String> Instructor(String[][] courseInfo, String courseID) {
    ArrayList<String> professors = new ArrayList<>();

    for (int i = 0; i < courseInfo.length; i++)
        if (courseInfo[i][0].equals(courseID))
            professors.add(courseInfo[i][2]);

    return professors;
}
private static ArrayList讲师(字符串[][]courseInfo,字符串courseID){
ArrayList=新的ArrayList();
for(int i=0;i
您可以使用
ArrayList
作为返回类型。如果它是空的,那么您知道没有找到匹配项。以下代码适用于您的
讲师
方法,您也可以采用其他方法:

private static ArrayList<String> Instructor(String[][] courseInfo, String courseID) {
    ArrayList<String> professors = new ArrayList<>();

    for (int i = 0; i < courseInfo.length; i++)
        if (courseInfo[i][0].equals(courseID))
            professors.add(courseInfo[i][2]);

    return professors;
}
private static ArrayList讲师(字符串[][]courseInfo,字符串courseID){
ArrayList=新的ArrayList();
for(int i=0;i
请向我们展示您在2D数组中搜索的尝试以及失败的地方。我的想法是在else语句之前加入以下内容作为第二个if。如果(ClassTime=CourseInfo[Courses][Details]){System.out.println(“课程名称:“+CourseID+”\n教授名称:“+讲师+”\n第一堂课:“+ClassTime”);@EdwinSalinas-如果问题的其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。已接受的答案有助于未来的访问者自信地使用该解决方案。请检查以了解如何使用该解决方案。请向我们展示您在2D数组中搜索的尝试以及哪些不起作用。我的想法包括下面是else语句之前的第二个if。if(ClassTime=CourseInfo[Courses][Details]){System.out.println(“课程名称:“+CourseID+”\n教授名称:“+讲师+”\n第一堂课:“+ClassTime”);@EdwinSalinas-如果问题的其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。已接受的答案有助于未来的访问者自信地使用该解决方案。查看以了解如何做。