public class favoriteshow {
String name = null;
int age = 0;
String show = null;
public Lab2(String name, int age, String show){
this.name = name;
this.age = age;
this.show = show;
}
public String toString(){
return "Name " + name + " age: " + age + " Favorite show: " + show;
}
}
我的主要课程:
public class NewClass {
public static void main(String args[]){
int x = 0;
ArrayList<favoriteshow> arraylist = new ArrayList<favoriteshow>();
while( x < 5){
String name;
int age = 0;
String show;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a name: ");
name = scanner.nextLine();
System.out.print("Enter an age: ");
age = scanner.nextInt();
System.out.print("Enter a show: ");
show = scanner.nextLine();
Lab2 nub1 = new Lab2 (name, age , show);
arraylist.add(nub1);
x++;
}
System.out.println(arraylist);
}
}
(我知道我的 while 循环只重复 5 次,因为我只是在测试它。
所以我有一个数组列表,用户可以输入人名、年龄和最喜欢的节目。我想包含一个搜索功能,因此,如果我要求用户输入一个名称,它将显示所有具有相同名称的人的信息,而不仅仅是第一个人。我还希望它告诉我那个人名单上的号码。例如,如果我有 5 个人,其中 2 个人的名字相同,他们是 2 和 4 的位置,那么它会告诉我他们是第二个和第四个位置。
只需像在普通数组中一样遍历 ArrayList 索引,并与所需字段进行比较,例如:
public void searchAndShow(String name) {
for (int i = 0; i < arraylist.size(); i++) {
favoriteshow fs = arraylist.get(i);
if (fs.getName().equals(name)) {
System.out.println(i + " - " + fs);
}
}