【问题标题】:Searching through an object ArrayList搜索对象 ArrayList
【发布时间】:2016-02-06 22:39:12
【问题描述】:
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 的位置,那么它会告诉我他们是第二和第四的位置。

【问题讨论】:

  • 你的课叫什么,最喜欢的节目还是 Lab2?你好像把名字弄混了。另外,如果是最喜爱的节目,则习惯上大写 (FavoriteShow)。

标签: java search arraylist


【解决方案1】:

只需像在普通数组中一样遍历 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);
    }   
}

【讨论】:

  • 我会把它放在我的主课还是我最喜欢的节目课上?
  • 不客气。不要忘记将我的答案标记为正确。 ;)
猜你喜欢
  • 2017-09-08
  • 2012-02-28
  • 1970-01-01
  • 2018-08-07
  • 2012-11-23
  • 2013-11-08
  • 2020-12-14
  • 1970-01-01
相关资源
最近更新 更多