`
想学跑的猪
  • 浏览: 15256 次
  • 性别: 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基础学习技术总结、期待与您交流! ----------

分享到:
评论

相关推荐

    Java-集合的例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的数据组织方式,使得开发者可以方便地存储和管理对象。本资料包是黑马程序员提供的详细教程,涵盖了Java集合的例题、源码以及配套的PPT教学文档,...

    集合-黑马程序员Java学习笔记

    本学习笔记由黑马程序员提供,旨在帮助初学者深入理解Java中的集合框架及其使用方法。 首先,我们来探讨“集合”的基本概念。在Java中,集合是一个对象容器,可以容纳多个元素,这些元素可以是任意类型的数据。Java...

    java集合框架

    在黑马程序员_毕向东_Java基础视频教程第14天-11-集合框架(ArrayList练习2).avi中,可能会详细讲解ArrayList的用法,包括如何创建ArrayList实例、向ArrayList中添加元素、删除元素、遍历ArrayList以及如何处理...

    毕向东1402

    通过观看“黑马程序员_毕向东_Java基础视频教程第14天-06-集合框架(List集合具体对象的特点).avi”和“黑马程序员_毕向东_Java基础视频教程第14天-03-集合框架(迭代器).avi”,你将能深入了解Java集合框架中的List...

    黑马程序员java培训就业班笔记集合体系总结.docx

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的数据存储和操作机制。集合框架的核心接口包括Collection和Map,它们分别代表单一对象的集合和键值对的集合。 1. Collection接口: ...

    毕向东1401

    在文件"黑马程序员_毕向东_Java基础视频教程第14天-02-集合框架(共性方法).avi"中,毕老师可能会详细阐述这些共性方法的使用场景和实现原理,同时通过实例演示如何在实际编程中应用它们。理解并熟练掌握这些共性方法...

    黑马java教程知识点笔记整理

    集合框架是处理对象集合的工具,包括List、Set、Queue和Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。 【面向对象编程】 Java支持类的继承、封装和多态。继承允许子类继承父类的属性和方法...

    《Java编程基础》课后习题答案(原创)

    4. **第六章:集合框架** - **集合与数组的区别**:集合可动态调整大小,支持更灵活的数据操作。 - **List、Set与Map**:List保持元素的插入顺序,允许重复元素;Set不允许重复元素,无序;Map存储键值对,键唯一...

    java.rar黑马java基础笔记

    - **HashSet与HashMap**:理解无序不重复元素的存储和基于键值对的快速查找。 - **ArrayList与LinkedList的区别**:讨论在不同场景下选择哪种集合类型更合适。 3. **多线程**: - **线程的创建**:通过实现...

Global site tag (gtag.js) - Google Analytics