Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何迭代、搜索和显示ArrayList中的特定元素_Java_Search_Arraylist - Fatal编程技术网

Java 如何迭代、搜索和显示ArrayList中的特定元素

Java 如何迭代、搜索和显示ArrayList中的特定元素,java,search,arraylist,Java,Search,Arraylist,我对程序的某个特定部分有问题。我要做的是迭代、搜索和显示ArrayList中的元素 因此,我尝试将自己的代码片段实现到代码的主要功能中,以尝试: else if (menuChoice==3) { System.out.println("Search Student:"); String search = input.nextLine(); for (Student student : students)

我对程序的某个特定部分有问题。我要做的是迭代、搜索和显示ArrayList中的元素

因此,我尝试将自己的代码片段实现到代码的主要功能中,以尝试:

else if (menuChoice==3) {
           System.out.println("Search Student:");
           String search = input.nextLine();

           for (Student student : students)
           {
               if (students.equals(search)){
                   System.out.println(student);
               }
           }
       }
希望它能够遍历ArrayList并访问/显示列表中的特定元素。它返回空白,我做错了什么

如果您想知道,下面是完整的代码:

package student;
import java.util.*;

public class Student
{
private String r_name;
private int r_age;
private String r_course;
private String r_year;
private String r_section;
private String r_studno;

public Student( String name, int age, String course, String year, String section, String studno )
{
    r_name = name;
    r_age = age;
    r_course = course;
    r_year = year;
    r_section = section;
    r_studno = studno;
}

public String getName()
{
    return r_name;
}

public int getAge()
{
    return r_age;
}

public String getCourse()
{
    return r_course;
}

public String getYear()
{
    return r_year;
}

public String getSection()
{
    return r_section;
}

public String getStudno()
{
    return r_studno;
}

public String toString()
{
    return "Name: " + r_name + ", Age: " + r_age + 
           ", Course: " + r_course + ", Year: " + r_year +
           ", Section: " + r_section + ", Student Number: " + r_studno;
}

public static void main(String[] args) 
{
   ArrayList<Student> students = new ArrayList<Student>();
   Scanner input = new Scanner(System.in);

   int menuChoice = 4;
   do {
       System.out.println("\t\t\tStudent Record Menu");
       System.out.println("\t\t1. Add Student\t2. View Students\t3. Search Student\t4. Exit");
       try {
           System.out.println("Enter a choice: ");
           menuChoice = Integer.parseInt(input.nextLine());
       } catch (NumberFormatException e) {
           continue;
       }

       if (menuChoice==1)
       {
           System.out.println("Add a Student");
           System.out.println("Full name:");
           String name = input.nextLine();

           int age = -1;
           do {
               try {
                   System.out.println("Age:");
                   age = Integer.parseInt(input.nextLine());
               } catch (NumberFormatException e) {
                   System.out.println("Enter a number!");
                   continue;
               }
           } while (age <= 0);

           System.out.println("Course:");
           String course = input.nextLine();

           System.out.println("Year:");
           String year = input.nextLine();

           System.out.println("Section:");
           String section = input.nextLine();

           System.out.println("Student Number:");
           String studno = input.next();

           Student student = new Student(name, age, course, year, section, studno);
           students.add(student);

       } else if (menuChoice==2) {
           System.out.println("Students:");
           for (Student student : students)
           {
               System.out.println(student);
           }
       } else if (menuChoice==3) {
           System.out.println("Search Student:");
           String search = input.nextLine();

           for (Student student : students)
           {
               if (students.equals(search)){
                   System.out.println(student);
               }
           }
       }

   } while (menuChoice<4);
}
}
package学生;
导入java.util.*;
公立班学生
{
私有字符串r_名称;
私人国际年龄;
私人弦乐课程;
私人字符串r_年;
专用字符串r_段;
私人字符串r_studno;
公立学生(字符串名称、整数年龄、字符串课程、字符串年份、字符串部分、字符串学生编号)
{
r_name=名称;
r_年龄=年龄;
r_课程=课程;
r_年=年;
r_截面=截面;
r_studno=studno;
}
公共字符串getName()
{
返回r_名称;
}
公共整数getAge()
{
返回r_年龄;
}
公共字符串getCourse()
{
返回r_课程;
}
公共字符串getYear()
{
返回r_年;
}
公共字符串getSection()
{
返回r_段;
}
公共字符串getStudno()
{
返回r_studno;
}
公共字符串toString()
{
返回“姓名:+r_姓名+”,年龄:+r_年龄+
,课程:“+r_课程+”,年份:“+r_年”+
,段:“+r_段+”,学号:“+r_学生号;
}
公共静态void main(字符串[]args)
{
ArrayList students=新ArrayList();
扫描仪输入=新扫描仪(System.in);
int menuChoice=4;
做{
System.out.println(“\t\t\t学生记录菜单”);
System.out.println(“\t\t1.添加学生\t2.查看学生\t3.搜索学生\t4.退出”);
试一试{
System.out.println(“输入选项:”);
menuChoice=Integer.parseInt(input.nextLine());
}捕获(数字格式){
继续;
}
如果(menuChoice==1)
{
System.out.println(“添加学生”);
System.out.println(“全名:”);
字符串名称=input.nextLine();
int age=-1;
做{
试一试{
System.out.println(“年龄:”);
age=Integer.parseInt(input.nextLine());
}捕获(数字格式){
System.out.println(“输入一个数字!”);
继续;
}

}而(年龄您必须将搜索键与学生的键id进行比较,例如,如果所有名称都是唯一的,则使用

 for (Student student : students)
       {
           if (student.getname().equals(search)){
               System.out.println(student);
           }
       }
您正在将整个student对象引用与搜索键进行比较

如果您想显示全部内容,则必须制定一种方法,使用id获取所有详细信息,例如:

getStudentbyname( String studentname){

here comes the code to get all data

}
然后在for循环中调用该方法并存储在数组中

 for (Student student : students)
       {
           if (student.getname().equals(search)){
              Arraylist<String> studentarr = student.getStudentbyname(student.getname());

System.out.println(""+studentarr)
           }
       }
for(学生:学生)
{
if(student.getname().equals(搜索)){
Arraylist studentarr=student.getStudentbyname(student.getname());
System.out.println(“+studentarr”)
}
}

您必须将搜索键与学生的键id进行比较,例如,如果所有名称都是唯一的,则使用

 for (Student student : students)
       {
           if (student.getname().equals(search)){
               System.out.println(student);
           }
       }
您正在将整个student对象引用与搜索键进行比较

如果您想显示全部内容,则必须制定一种方法,使用id获取所有详细信息,例如:

getStudentbyname( String studentname){

here comes the code to get all data

}
然后在for循环中调用该方法并存储在数组中

 for (Student student : students)
       {
           if (student.getname().equals(search)){
              Arraylist<String> studentarr = student.getStudentbyname(student.getname());

System.out.println(""+studentarr)
           }
       }
for(学生:学生)
{
if(student.getname().equals(搜索)){
Arraylist studentarr=student.getStudentbyname(student.getname());
System.out.println(“+studentarr”)
}
}

您必须将搜索键与学生的键id进行比较,例如,如果所有名称都是唯一的,则使用

 for (Student student : students)
       {
           if (student.getname().equals(search)){
               System.out.println(student);
           }
       }
您正在将整个student对象引用与搜索键进行比较

如果您想显示全部内容,则必须制定一种方法,使用id获取所有详细信息,例如:

getStudentbyname( String studentname){

here comes the code to get all data

}
然后在for循环中调用该方法并存储在数组中

 for (Student student : students)
       {
           if (student.getname().equals(search)){
              Arraylist<String> studentarr = student.getStudentbyname(student.getname());

System.out.println(""+studentarr)
           }
       }
for(学生:学生)
{
if(student.getname().equals(搜索)){
Arraylist studentarr=student.getStudentbyname(student.getname());
System.out.println(“+studentarr”)
}
}

您必须将搜索键与学生的键id进行比较,例如,如果所有名称都是唯一的,则使用

 for (Student student : students)
       {
           if (student.getname().equals(search)){
               System.out.println(student);
           }
       }
您正在将整个student对象引用与搜索键进行比较

如果您想显示全部内容,则必须制定一种方法,使用id获取所有详细信息,例如:

getStudentbyname( String studentname){

here comes the code to get all data

}
然后在for循环中调用该方法并存储在数组中

 for (Student student : students)
       {
           if (student.getname().equals(search)){
              Arraylist<String> studentarr = student.getStudentbyname(student.getname());

System.out.println(""+studentarr)
           }
       }
for(学生:学生)
{
if(student.getname().equals(搜索)){
Arraylist studentarr=student.getStudentbyname(student.getname());
System.out.println(“+studentarr”)
}
}

您正在检查
数组列表
学生
是否等于
字符串
搜索
。结果只能为假。我猜,您正在尝试执行以下操作:

for (Student student : students)
{
    if (student.getName().equals(search))
    {
        System.out.println(student);
        break;//assuming student name are unique. remove if not
    }
}

您正在检查
数组列表
学生
是否等于
字符串
搜索
。结果只能是false。我猜您正在尝试执行以下操作:

for (Student student : students)
{
    if (student.getName().equals(search))
    {
        System.out.println(student);
        break;//assuming student name are unique. remove if not
    }
}

您正在检查
数组列表
学生
是否等于
字符串
搜索
。结果只能是false。我猜您正在尝试执行以下操作:

for (Student student : students)
{
    if (student.getName().equals(search))
    {
        System.out.println(student);
        break;//assuming student name are unique. remove if not
    }
}

您正在检查
数组列表
学生
是否等于
字符串
搜索
。结果只能是false。我猜您正在尝试执行以下操作:

for (Student student : students)
{
    if (student.getName().equals(search))
    {
        System.out.println(student);
        break;//assuming student name are unique. remove if not
    }
}

你试着用什么信条。你需要按名字,课程,