2015-05-29 48 views
0

我有一個要求,我們必須從它的列表中搜索一個對象。例如,如果我們有一個Person列表對象LIKE在Java中謂詞。它是否存在?

List<User> userList = new ArrayList<User>(); 

User對象的名字和姓氏就像這樣的參數。

public class User{ 
    String firstName; 
    String lastName; 
    } 

我需要執行如果用戶輸入「拉吉」作爲輸入應當產生相同的結果爲「像」的查詢,其中,搜索範圍。

我已經用apache-commons謂詞做了。它適用於「EQUALS」。 但是,我們有沒有其他類可以用於LIKE查詢的apache-commons中。

+0

你是什麼意思的「」LIKE「查詢」? – esej

+0

@esej,SQL LIKE。 – user

+1

你不需要apache commons,你可以直接用jdk來做..看到我的答案。 –

回答

2

你的意思是

userList 
    .stream() 
    .filter(user -> user.getFirstName().contains(input)) 
    .collect(Collectors.toList()); 

String#contains將返回true,如果...我真的不認爲我必須解釋這一點。

這將返回firstname包含輸入的所有用戶的列表。

+0

如果OP使用Java 8 of course – User404

+2

@ User404當然。當版本沒有被指定時,我只是爲了最新的,我不喜歡舊的東西。 (對老人不要冒犯)。 –