Java arraylist中的搜索元素

Java arraylist中的搜索元素,java,search,arraylist,Java,Search,Arraylist,如何在arraylist中搜索元素并显示它?例如,用户希望搜索代码A25,然后它将在他只搜索的arraylist上打印整个内容,输出为A25 CS 212数据结构3 Subject CS212 = new Subject("A25","\t\tCS 212","\t\tData Structures\t\t\t\t",units); Subject IT312 = new Subject("A26","\t\tIT 312","\t\tData Base Management Syst

如何在arraylist中搜索元素并显示它?例如,用户希望搜索代码A25,然后它将在他只搜索的arraylist上打印整个内容,输出为A25 CS 212数据结构3

 Subject CS212 = new Subject("A25","\t\tCS 212","\t\tData Structures\t\t\t\t",units);
    Subject IT312 = new Subject("A26","\t\tIT 312","\t\tData Base Management System 2\t\t",units);
    Subject IT313 = new Subject("A27","\t\tIT 312","\t\tData Base Management System 2\t\t",units);
    Subject CS313 = new Subject("A29","\t\tCS 313","\t\tDigital Designt\t\t\t\t",units);
    Subject Disc  = new Subject("A30","\t\tIT 212","\t\tDiscrete Structurest\t\t",units);
    Subject A31 = new Subject("A31","\t\tIT 212","\t\tDiscrete Structurest\t\t",units);
    Subject Engl3 = new Subject("984","\t\tEngl 3","\t\tSpeech and oral Communicationt\t\t",units);
    Subject Theo3 = new Subject("582","\t\tTheo 3","\t\tChrist and Sacramentst\t\t",units);
    Subject Stat = new Subject("470","\t\tStata1","\t\tProbablility and Statisticst\t\t",units);
    Subject Dota = new Subject("999","\t\tDota 2","\t\tDota Guide\t\t\t\t",units);

    ArrayList<Subject> arrList = new ArrayList<Subject>();

    arrList.add(CS212);
     arrList.add(IT312);
     arrList.add(IT313);
     arrList.add(CS313);
     arrList.add(Disc);
     arrList.add(A31);
     arrList.add(Engl3);
     arrList.add(Theo3);
     arrList.add(Stat);
     arrList.add(Dota);
//User input that he wants to search
for(int i = 0; i < 3; i++,num++)
    {   

        System.out.print("\t\t"+num +". ");
        codeNo[i] = scan.next();
        String output = Character.toUpperCase(codeNo[i].charAt(0)) + codeNo[i].substring(1);
        codeNo[i] = output;
    }

        // This is what I tried but it doesn't work Idk why
        for (Subject s : arrList) {

            for(int i =0; i < codeNo.length; i++)

                  if (s.equals(codeNo[i])) {

                    System.out.println("\t\t\t"+s);



                  } 

            }

public Subject(String codeNo, String subjectID, String title , int unit)
{
 //Constructor . .
}
//Desired output
Code to search
A25
A26
A27
output
A25     CS 212      Data Structures         3
A26     IT 312      Data Base Management System 2   3
A27     IT 312      Data Base Management System 2   3
Subject CS212=新主题(“A25”、“\t\tCS 212”、“\t\t数据结构\t\t\t”,单位);
主题IT312=新主题(“A26”、“\t\tIT 312”、“\t\t数据库管理系统2\t\t”,单位);
主题IT313=新主题(“A27”、“\t\tIT 312”、“\t\t数据库管理系统2\t\t”,单位);
主题CS313=新主题(“A29”、“\t\tCS 313”、“\t\t数字设计t\t\t\t”,单位);
主题光盘=新主题(“A30”、“\t\tIT 212”、“\t\tDiscrete Structurest\t\t”,单位);
主题A31=新主题(“A31”、“\t\tIT 212”、“\t\tDiscrete Structurest\t\t”,单位);
主题英语3=新主题(“984”、“\t\tEngl 3”、“\t\t语言和口头交流”\t\t”,单位);
主题Theo3=新主题(“582”、“\t\t主题Theo3”、“\t\t基督和圣礼教”\t\t”,单位);
主题统计=新主题(“470”、“\t\tStata1”、“\t\t概率与统计t\t\t”,单位);
主题Dota=新主题(“999”、“\t\t数据2”、“\t\t数据指南\t\t\t”,单位);
ArrayList arrList=新的ArrayList();
增补(CS212);
arrList.add(IT312);
arrList.add(IT313);
arrList.add(CS313);
arrList.add(Disc);
新增(A31);
arrList.add(英语三级);
添加(3);
arrList.add(Stat);
arrList.add(Dota);
//他想要搜索的用户输入
对于(int i=0;i<3;i++,num++)
{   
系统输出打印(“\t\t”+num+”);
codeNo[i]=scan.next();
字符串输出=Character.toUpperCase(codeNo[i].charAt(0))+codeNo[i].substring(1);
codeNo[i]=输出;
}
//这是我尝试过的,但不起作用。为什么
适用于(受试者:arrList){
for(int i=0;i
如果要搜索主题的数组列表,需要编写一个小函数,将代码字符串与类的相应字符串进行比较。您可以通过将其添加到您的主题类来实现这一点

例如:

@Override
public boolean equals(String code) {
    return code.equals(this.<compare to member>);
}

实际输出是什么?假设输入工作正常,您应该执行s.code.equals(codeNo[i]),而不是s.equals(codeNo[i])。您现在正在比较主题对象。
if (s.code.equals(codeNo[i])) //assuming your code class member is a public string