我有用戶對象列表,我只想根據用戶對象中的變量從列表中獲取用戶對象。從對象列表中獲取基於對象變量的對象
public class User {
private int id;
private String sex;
private int age;
private String country;
/**
* Getter and setter for all variables
*/
}
我有一個這樣的模型類。現在我有用戶對象列表。
List<User> users = new ArrayList<User>();
我想從用戶列表中獲取對象,如果用戶是男性。
List<User> ageList = new ArrayList<User>();
for(User object : users) {
if(object.getSex().equals("Male")){
ageList.add(object);
}
}
我不喜歡上面的方法。有沒有更好的方法來從基於對象中的變量的對象列表中獲取對象..?
有什麼函數Java Collections ..?我們可以使用Java比較器來解決這個問題嗎?
我不喜歡這種表示法的原因是它更長,並且增加了稍後有人閱讀它的庫/方法可能不熟悉的內容。這是一個恥辱Java沒有更好的支持這個用例(就像幾乎所有其他流行語言:P) – 2011-06-05 10:28:13
@Peter:我同意,Ruby是一個好幾億倍:'males = users.select {| user | user.sex =='男'}' – 2011-06-05 10:30:28
即使無聊和非常古老的SQL'select * from用戶where性別=「男性」''''我傾向於喜歡短而且需要較少符號的表達式。大多數程序員可以理解和編寫簡單的SQL。 – 2011-06-05 10:33:17