Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从ArrayList中删除重复对象_Java_Arraylist - Fatal编程技术网

Java 从ArrayList中删除重复对象

Java 从ArrayList中删除重复对象,java,arraylist,Java,Arraylist,我有一个Java类 class Students{ private String fName; private String lName; private String uName; public Students(String fName, String lName, String uName) { this.fName = fName; this.lName = lName; t

我有一个Java类

class Students{
    private String fName;   
    private String lName;
    private String uName;


    public Students(String fName, String lName, String uName) {
            this.fName = fName;
            this.lName = lName;
            this.uName = uName;
     }      

    public String getuName() {
        return uName;
    }
    public void setuName(String uName) {
        this.uName = uName;
    }
    public String getfName() {
        return fName;
    }
    public void setfName(String fName) {
        this.fName = fName;
    }
    public String getlName() {
        return lName;
    }
    public void setlName(String lName) {
        this.lName = lName;
    }

}
现在我创建了对象作为

    Students students1 = new Students("har","mat","harmat");
    Students students2 = new Students("pan","son","panson");
    Students students3 = new Students("yogi","jos","yogijos");

    Students students4 = new Students("har","mat","harmat");
    Students students5 = new Students("pan","son","harmat");
    Students students6 = new Students("yogi","jos","someotherUName");
    Students students7 = new Students("yogi","jos","someotherUName2");
现在,所有这些对象都被添加到combinedList中

List combinedList = new ArrayList<SchoolStudents>();
List combinedList=new ArrayList();
我想根据以下条件从这个组合列表中删除重复的对象;
如果fName相同或uName相同。

如果这是确定两个学生是否相等的一般标准,您可以在您的班级中覆盖
equals
hashcode
,根据您的标准使两个学生相等


然后,您可以将学生添加到一个集合中(通常是a,它将自动删除副本。

将他们存储在一个
集合中
(例如
树集
),并在构建时向
集合提供一个
比较器
,该比较器满足
fName
uName
相同的标准


(我假设复制的定义对学生来说是外部的,例如,它在不同的时间意味着不同的事情。如果它是学生固有的,那么@assylias答案更有意义)。

如果你需要一个唯一的列表,我建议使用
列表
界面中的任何内容。你最好使用


重写
学生的
类的
hashCode()
equals()
方法,建议在学生类中实现
equals()
hashCode()
,并使用a强制唯一性。

公共列表从列表(列表列表列表)中移除{
public List<User> removeDuplicateFromList(List<User> list){
    int s=0;
    List<User> users=new ArrayList<User>();
    for(User us1 :list){
        for(User us2:users){
        if(us1.getIdUser()==us2.getIdUser()){
            s=1;
        }else{
            s=0;
        }

        }   if(s==0){
            users.add(us1);
        }

    }
    return users;
}
int s=0; 列表用户=新建ArrayList(); 用于(用户us1:列表){ 用于(用户us2:用户){ 如果(us1.getIdUser()==us2.getIdUser()){ s=1; }否则{ s=0; } }如果(s==0){ users.add(us1); } } 返回用户; }
可能重复的,然后,更多重复的,家庭作业??到目前为止您尝试了什么?提示:使用comparable()并设置为什么有人会投票反对?这是一个合理的初学者问题。