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次,因为我只是测试它。)
所以我有一个arraylist,用户输入人名,年龄和喜爱的节目。我想要包含一个搜索功能,所以,如果我要求用户键入一个名称,它将显示所有具有相同名称的人的信息,而不仅仅是第一个人。我还想让它告诉我这个人名单上的号码。例如,如果我要有5个人,其中2个人有相同的名字,他们是2和4位置,那么它会告诉我他们是第二个和第四个位置。
答案 0 :(得分:0)
只需像普通数组一样遍历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);
}
}