ArrayList Java中的搜索字符串
我试图在ArrayList
中搜索一个关键字,如果找到了关键字,它将打印ArrayList
中有多少“关键字”。但无论是什么关键字,我都会得到“找不到关键字”的打印结果,因为搜索方法不起作用是有原因的
代码如下:
public ArrayList<Media> search(String keywordi)
{
keyword = keywordi;
System.out.println(keyword);
return (ArrayList<Media>) storage.stream()
.filter(m -> storage.contains(keyword))
.collect(Collectors.toList());
}
及
ArrayList<Media> result = (ArrayList<Media>) katalog.search("Tasty");
if(result.size()==0)
{
System.out.println("No keywords found.");
}
else
{
System.out.println(result.size()+" keywords found.");
}
# 1 楼答案
这将有助于回答您的问题:
假设您的
Media
类如下所示:# 2 楼答案
我想
filter
调用应该是但是
Media
类没有contain
方法。 所以也许应该是这样# 3 楼答案
您可能想要的方法是
或
因为
ArrayList
只是一个无关紧要的细节。通用List
接口通常更可取filter
应用于通过调用stream()
方法得到的Stream<Media>
中的每个元素。它是一个boolean
函数,决定元素是否应该出现在下一步中。如果一个简单的表达式还不够,您还可以定义一个完整的代码块来分析您得到的Media
元素: