集合ArrayList中删除重复元素两种方法

1.删除字符串的重复值

public class demo1_ArrayList {
    public static void main(String[] args) {
        ArrayList l=new ArrayList();

        l.add("a");
        l.add("b");
        l.add("a");
        l.add("b");     

        ArrayList nl=getSingle(l);
        System.out.println(nl);
    }

public static ArrayList getSingle(ArrayList list){
    ArrayList newList=new ArrayList();          //1 创建一个新的集合,存储新的元素
    Iterator it=list.iterator();                //2 根据传入的集合获取迭代器,遍历

    while(it.hasNext()){
        Object obj=it.next();
        if(!newList.contains(obj)){             //3 判断创建的集合是否包含传入的元素,不包含则添加新元素
            newList.add(obj);
        }
    }
    return newList;
}
}

2.删除自定义对象元素的重复值
(1)先定义一个Person类,并重写toString(),Equals()方法,

public class person {
private String name;
private int age;

public person() {
    super();
}

public person(String name, int age) {
    super();
    this.name = name;
    this.age = age;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}


@Override
public String toString() {
    return "person [age=" + age + ", name=" + name + "]";
}

@Override
public boolean equals(Object obj) {
    person p=(person)obj;
    return this.name.equals(p.name)&&this.age==this.age;
}
}

(2)

public static void main(String[] args) {
    ArrayList l=new ArrayList();
    l.add(new person("aa",1));
    l.add(new person("aa",1));
    l.add(new person("bb",2));
    l.add(new person("bb",2));

    ArrayList nl=getSingle(l);
    System.out.println(nl);
}

public static ArrayList getSingle(ArrayList list){
    ArrayList newList=new ArrayList();
    Iterator it=list.iterator();

    while(it.hasNext()){
        Object obj=it.next();
        if(!newList.contains(obj)){
            newList.add(obj);
        }
    }
    return newList;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值