【问题标题】:Searching arrayLists搜索数组列表
【发布时间】:2015-02-12 08:30:39
【问题描述】:

您好,我正在创建一个简单的 mp3 数据库,用于存储 trackNum、名称和持续时间。我需要搜索一个数组列表并获取搜索的索引。

这是我目前拥有的。

//My methods
public void searchTrackNum(Intager trackNumber){
    System.out.println(trackNum + ": " + name[index] + " " + duration[index]);
}
public void searchName(String name){
    System.out.println(trackNum + ": " + name[index] + " " + duration[index]);
}

//Using the methods
case 4:
    System.out.println("What name would you like to search for: 1-Track Number or 2-Name");
    int question = in.nextInt();
        if(question == 1){
            System.out.println("Please enter the track Number?");
            meth.searchTrackNum(in.nextInt());
        }
        if(question == 2){
            System.out.println("Please enter the Name?");
            meth.searchName(in.next());
        }
        else{
            System.out.println("Pease enter 1  or 2.");
        }
    break;
  1. 如何搜索数组列表
  2. 我需要能够获取搜索索引以添加曲目名称及其持续时间。

【问题讨论】:

    标签: java search arraylist indexing


    【解决方案1】:

    我建议使用

    int index = Arrays.asList(names).indexOf(nameToLookFor);
    

    如果名称已排序,则可以使用 binarySearch 代替。

    【讨论】:

    • 您好,感谢您的回复,这就是我所做的。 'public void searchName(String aName){ int num = Arrays.asList(name).indexOf(aName); System.out.println(trackNum + ": " + name.get(num)+ " " + duration.get(num)); }'
    • 程序在我搜索名称时崩溃
    • 在这种情况下,我建议您阅读错误消息,它可能试图告诉您一些事情。 ;) 它说什么? ArrayIndexOutOfboundException: -1 之类的东西?
    • 正是这样,是什么原因造成的
    • List.indexOf 的 Javadoc 说如果未找到匹配项,则返回 -1。即您要查找的字符串不在数组中。这就是使用调试器有帮助的地方。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多