我有List<Foo>
,其中Foo
是class
,其中包含名为String
的{{1}}字段。我想知道name
是否包含一个List
对象,Foo
等于name
。
这是否可以在不迭代每个对象并逐个测试的情况下实现?
我正在使用Java 8.
答案 0 :(得分:2)
您可以使用并行流返回Optional<String>
,该Foo
可能为空,也可能不为空,具体取决于&#34; bar&#34;作为List<Foo>
中的list.parallelStream()
.map(Foo::getName)
.filter(s -> s.equals("bar"))
.findAny();
对象的属性存在:
List<Foo>
这仍然会遍历name
,但在最坏的情况下,它是O(n /使用的线程数)
另一种选择是按Select
co.id
,co.opp_id
,(IF co.opp_id NOT NULL THEN Opp.Col1 ,opp.Col2)
,customer.cust_num
From co LEFT OUTER JOIN opp on co.opp_id = opp.opp_id
LEFT OUTER JOIN customer on co.cust_num = customer.cust_num
属性对列表进行排序,然后进行二进制搜索,但最有可能需要对其进行排序。