2015-03-31 40 views
-1

匹配字符串的項目我有一個Java類:查找從列表

class GlobalUsers { 

    String name = "" 
    String ID = "" 
    ................ 
    ................ 
} 

現在在另一個函數:

List<GlobalUsers> guObjs = new List<GlobalUsers>(); 

在這裏,我在列表中有幾百GlobalUsers的對象。

我想找到GlobalUsers的所有對象,其中串name == "User_CUSTOM"

所以基本上,結果將是另一個列表:

List<GlobalUsers> guObjs = *name == "User_CUSTOM"* 

我怎樣才能做到這一點最簡單的方法?

+0

您是否爲'GlobalUsers'實施了'equals'? – kolossus 2015-03-31 17:38:05

+0

不是。我是Java新手,所以對此沒有太多的想法。 – Kris 2015-03-31 17:39:21

+0

好的,所以你需要閱讀Java中對象的相等性;然後閱讀「Comparator」接口的使用;然後你看看排序集合,所以你可以使用'Collections'類中的二進制搜索功能 – kolossus 2015-03-31 17:41:46

回答

4

使用流API:

guObjs.stream().filter(u -> "User_CUSTOM".equals(u.name)).collect(Collectors.toList()); 

過濾器不正是你想要的東西,得到的是檢查輸入值好不好(你的情況的功能,如果名稱匹配的要求「User_CUSTOM」值。Collect收集所有匹配的結果,並將它們放回列表中。