我正在使用ImmutableList數據結構。過濾列表內容並在庫存描述屬性中返回包含該術語的所有元素的最佳方法是什麼?使用谷歌Guava包含文本的過濾器集合
-1
A
回答
0
如果你到Java 8,試試這個:
ImmutableList<String> immutableList = ImmutableList.of("s1", "s2");
List<Object> collect = immutableList.stream().filter(s -> s.endsWith("1")).collect(Collectors.toList());
// collect: [s1]
0
我的解決辦法:你需要寫一個謂詞可以接受的說法。然後用它過濾你的收藏。
public static void main(String args[]) {
Item i1 = new Item("Pen", "To write...");
Item i2 = new Item("Phone","to call someone...");
List<Item> items = new ArrayList<Item>();
items.add(i2);
items.add(i1);
Collection<Item> result = Collections2.filter(items, filterDescription("To write..."));
for(Item item : result){
System.out.println(item);
}
}
方法接受一個參數,並把一個謂語
public static Predicate<Item> filterDescription(final String desciption){
return new Predicate<Item>() {
@Override
public boolean apply(Item input) {
return input.getDescription() != null && input.getDescription().contains(desciption);
}
};
}
結果:
--- EXEC-Maven的插件:1.2.1:EXEC(默認CLI)@應用程序 - -
項{說明=寫的...,標題=筆,價格= 0.0,數= 0}
0
隨着FluentIterable:
final String description = "search string";
final Iterable<Item> filtered = FluentIterable.from(unfiltered)
.filter(new Predicate<Item>() {
@Override
public boolean apply(final Item input) {
return input.getDescription().contains(desciption);
}
});
您可以鏈接過濾器,使用FluentIterable進行轉換(等)。如果你想結束一個列表或一個集合,只需在結尾添加「.toList()」或「.toSet()」。
相關問題
- 1. 「不包含」文本過濾器過濾器太多
- 2. 使用包含參數的列表過濾集合
- 3. 谷歌地圖過濾器
- 4. 谷歌分析過濾器
- 5. Java 8 - 使用多個過濾器的過濾器集合
- 6. 古怪使用谷歌Guava Collections2.transform
- 7. Linq - 包含和過濾器 - 嵌套集合
- 8. 實體框架包含過濾器子集合
- 9. 使用JQuery過濾器:包含
- 10. 使用Google Guava過濾JavaBeans的列表
- 11. 谷歌應用引擎或過濾器
- 12. pandoc包含在Haskell文件過濾器
- 13. 集合函數「Aggregate」不能用在包含任何過濾器的報表中
- 14. 谷歌DBM的Python API - 過濾器
- 15. 如何使用有源過濾器過濾產品集合?
- 16. NHibernate過濾器集合
- 17. 過濾器集合不是?
- 18. 流星過濾器集合
- 19. 過濾器集合在Laravel
- 20. 如何在谷歌分析中添加(未設置)值以包含過濾器
- 21. 包含一些文本的PHP數據過濾器表
- 22. 谷歌文檔計數包含任何文本的單元格
- 23. 異常使用谷歌番石榴和谷歌集合一次
- 24. 使用谷歌腳本下載文件到谷歌驅動器
- 25. 過濾泛型集合向下包含任何項目集合字符串
- 26. 使用Guava的轉發裝飾器創建特定的集合
- 27. 谷歌瀏覽器使用bloom濾鏡
- 28. 過濾集合
- 29. 谷歌地圖標記過濾器與集羣
- 30. 多個過濾器谷歌地圖
查看'FluentIterable'。 –
FluentIterable.filter(),Iterables.filter() –
Lists.filter(list,predicate) –