当前位置: 首页 > 知识库问答 >
问题:

如何在arraylist中搜索项目?[副本]

许明朗
2023-03-14

我正在创建一个gui,可以添加、删除和搜索用户输入的名称。我想知道允许我在arraylist中搜索项目的代码。非常感谢。

共有3个答案

羊舌庆
2023-03-14

由于你的问题没有提供足够的信息,我将补充一些内容:

//This is your array list that you want to search in:
private ArrayList<String> names = new ArrayList<>(); // Assume this is full of stuff

//This is the user input
private String userInput;

//This method will be called when the search button is clicked
public void onSearchClick() {

}

以下是如何实现搜索算法:

对于数组列表中的每个项目,如果它包含搜索字符串,请将其添加到搜索结果中。

这很有道理,不是吗?

在代码中,您可以编写以下内容:

private ArrayList<String> searchInList(ArrayList<String> list, String searchString) {
    ArrayList<String> results = new ArrayList<>();
    for (item in list) {
        if (item.contains(searchString)) {
            results.add(item);
        }
    }
    return results;
}

然后在onSearchClark方法中,调用search方法并对结果进行处理。

public void onSearchClick() {
    ArrayList<String> searchResults = searchInList(names, userInput);
    // display the results or whatever
}

如果要进行不区分大小写的搜索,可以将搜索方法中的If语句更改为:

if (item.toLowercase().contains(searchString.toLowercase()))
夹谷岳
2023-03-14

您可以使用谓词在表示列表的流中进行搜索,下面是一个简单的示例

List<String> listOfUsersName = Arrays.asList("toto", "tata", "joe", "marou", "joana", "johny", "");

String userInputSearch = "jo";

List<String> result =listOfUsersName.stream()
                                    .filter(user -> user.contains(userInputSearch))
                                    .collect(Collectors.toList());

result.forEach(System.out::println);
呼延鸿畅
2023-03-14

你可以用

Java.util.ArrayList.indexOf(Object)

方法它将返回列表中元素第一次出现的索引位置。

java.util.ArrayList.Contains(Object o)

如果指定的元素在列表中可用,则上述方法将返回true。

 类似资料:
  • 问题内容: 我正在尝试通过ID号来搜索客户的最佳方法。以下代码无法正常工作;编译器告诉我我缺少一条语句。 问题答案: 编译器抱怨是因为您当前在for循环中有’if(exist)’块。它必须在它之外。 话虽如此,有更好的方法来执行此搜索。就个人而言,如果我使用的是ArrayList,我的解决方案将类似于Jon Skeet发布的解决方案。

  • 问题内容: 创建激活码后,需要1至60秒的时间将代码上传到系统中。因此,在创建新代码之后,我想使用WebDriverWait 60秒钟来确保,并且在此时间段内每3秒钟我要单击“搜索按钮”。有什么办法吗? 问题答案: 附带“免费” 。 您可以在创建时设置一个值,以告诉它应该多久尝试运行一次代码(单击搜索按钮): http://selenium.googlecode.com/git/docs/api/

  • 我正在使用Eclipse Luna和m2e插件。当我搜索依赖项时,我得到以下警告(也请参见后面的截图): 索引下载被禁用,搜索结果可能不完整。 如何启用索引下载?

  • 代码所做的是创建数组和链表,并为每个元素提供一个开始。然后,将对这两个数组运行,并在数组中的某个随机索引处插入一个随机值。它将添加到每个数组的值的数量由用户的输入决定。 因此,从根本上说,人们会认为函数返回这两种列表类型所需的时间相同(可能会稍微快一些)。但是,实际的结果似乎表明,比链表快得多,而不管您添加的元素数量如何(您可以在这里尝试一下)。 无论如何,我的猜测是,这可能与缓存有关,而且将为插