我得到了一个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)”中的解决方案。 –