我得到了一個ArrayList的用戶,他們每天可以多次登錄到Web站點。 如何從第一個數組列表中創建唯一用戶的ArrayList。 換句話說,我需要忽略多個登錄。 例如,如果有20個登錄到網站,並且所有這些登錄都由兩個用戶完成,那麼第二個列表應該只包含兩個用戶對象。 我是Java編程語言的新手,我需要幫助。在Java中的ArrayList中創建唯一項目的ArrayList
下面是用戶等級:
public class User {
private String id
private String date;
public String getId() {
return id
}
public void setId(String id) {
this.id = id
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
這裏是我是如何去解決這個問題,但由於某種原因,這是行不通的。
ArrayList<User> userList = new ArrayList<>();
ArrayList<User> uniqueUserlist = new ArrayList<>();
String id = null;
for(User user : userList) {
if (user.getId() != id) {
uniqueUserlist.add(user);
}
id = user.getId();
}
謝謝。
您使用循環 –
'=='和'!='在Java中比較基準的平等,而不是數據面前人人平等有你'userList'未初始化的數據。如果你想檢查id是否相等,使用'user.getId()。equals(id)'。 – azurefrog
如果你修改你的'User'類來給它明智的['equals'](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang .Object)和['hashCode'](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--)方法(爲了完整性而使用'toString') ,那麼你可以使用「[從java中的arraylist獲取唯一值](https://stackoverflow.com/questions/13429119)」中的解決方案。 –