`
想学跑的猪
  • 浏览: 14027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员_集合框架_删除ArrayList中的重复元素

阅读更多

 ------- android培训java培训、java基础学习技术总结、期待与您交流! ----------

        删除ArrayList中重复元素的方法有两种:

        方法一:创建一个新的ArrayList对象,对旧ArrayList对象中的元素进行判断,当新的ArrayList中对象已经存在,则不执行添加。判断对象是否重复的方法的关键在于在元素对象中复写equals方法。

package com.itcast.test;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
class Student{
	private String name;
	private int 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;
	}

	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}
	public boolean equals(Object obj){
		if(!(obj instanceof Student))
			return false;
		Student stu=(Student)obj;
		return this.name.equals(stu.name)&&this.age==stu.age;
		
	}
	 
}

public class RemoveSame {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		// TODO Auto-generated method stub
		ArrayList<Object> arr=new ArrayList();
		arr.add(new Student("zhangsan",23));
		arr.add(new Student("zhangsan",23));
		arr.add(new Student("lisi",22));
		arr.add(new Student("lisi",22));
		arr.add(new Student("wangwu",22));
	    arr=singleArrayList(arr);	
	    Iterator it=arr.iterator();
	    while(it.hasNext()){
	    	Student stu=(Student)it.next();
	    	System.out.println(stu.getName()+"....."+stu.getAge());  
	    }
	}
	
	public static ArrayList singleArrayList(ArrayList al){
		ArrayList newal=new ArrayList();
		Iterator it1=al.iterator();
		while(it1.hasNext()){
			Object obj=it1.next();
			if(!newal.contains(obj)){
				newal.add(obj);
			}
				
		}
		return newal;
	}

}

     第二种方法:创建一个HashSet对象,将Arraylist中的元素一次放入set中,由于set集合中元素不允许重复,那么重复的元素就不能添加到set中。set中判断元素是否重复的关键在于在元素对象中重写了equals方法和hashCode方法。

package com.itcast.test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
class Student{
	private String name;
	private int 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;
	}

	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}
	public boolean equals(Object obj){
		if(!(obj instanceof Student))
			return false;
		Student stu=(Student)obj;
		return this.name.equals(stu.name)&&this.age==stu.age;
		
	}
	public int hashCode(){
		return name.length()+age*38; 
		
	}
	 
}

public class RemoveSame1 {
	public static void main(String[] args){
		ArrayList arr=new ArrayList();
		arr.add(new Student("zhangsan",23));
		arr.add(new Student("zhangsan",23));
		arr.add(new Student("lisi",22));
		arr.add(new Student("lisi",22));
		arr.add(new Student("wangwu",22));
		HashSet set=new HashSet();
		Iterator it=arr.iterator();
		while(it.hasNext()){
			set.add(it.next());
		}
		Iterator it1=set.iterator();
		while(it1.hasNext()){
			Student stu=(Student) it1.next();
			System.out.println(stu.getName()+"...."+stu.getAge());
		}
	}

}

 

 ------- android培训java培训、java基础学习技术总结、期待与您交流! ----------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics