Java 如何迭代、搜索和显示ArrayList中的特定元素
我对程序的某个特定部分有问题。我要做的是迭代、搜索和显示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)
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
}
}
你试着用什么信条。你需要按名字,课程,