由于你的问题没有提供足够的信息,我将补充一些内容:
//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()))
您可以使用谓词在表示列表的流中进行搜索,下面是一个简单的示例:
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);
你可以用
Java.util.ArrayList.indexOf(Object)
方法它将返回列表中元素第一次出现的索引位置。
或
java.util.ArrayList.Contains(Object o)
如果指定的元素在列表中可用,则上述方法将返回true。
问题内容: 我正在尝试通过ID号来搜索客户的最佳方法。以下代码无法正常工作;编译器告诉我我缺少一条语句。 问题答案: 编译器抱怨是因为您当前在for循环中有’if(exist)’块。它必须在它之外。 话虽如此,有更好的方法来执行此搜索。就个人而言,如果我使用的是ArrayList,我的解决方案将类似于Jon Skeet发布的解决方案。
我正在使用Eclipse Luna和m2e插件。当我搜索依赖项时,我得到以下警告(也请参见后面的截图): 索引下载被禁用,搜索结果可能不完整。 如何启用索引下载?
问题内容: 创建激活码后,需要1至60秒的时间将代码上传到系统中。因此,在创建新代码之后,我想使用WebDriverWait 60秒钟来确保,并且在此时间段内每3秒钟我要单击“搜索按钮”。有什么办法吗? 问题答案: 附带“免费” 。 您可以在创建时设置一个值,以告诉它应该多久尝试运行一次代码(单击搜索按钮): http://selenium.googlecode.com/git/docs/api/
代码所做的是创建数组和链表,并为每个元素提供一个开始。然后,将对这两个数组运行,并在数组中的某个随机索引处插入一个随机值。它将添加到每个数组的值的数量由用户的输入决定。 因此,从根本上说,人们会认为函数返回这两种列表类型所需的时间相同(可能会稍微快一些)。但是,实际的结果似乎表明,比链表快得多,而不管您添加的元素数量如何(您可以在这里尝试一下)。 无论如何,我的猜测是,这可能与缓存有关,而且将为插