2015-03-31 41 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收集所有匹配的结果,并将它们放回列表中。