------- 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()); } } }
相关推荐
Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的数据组织方式,使得开发者可以方便地存储和管理对象。本资料包是黑马程序员提供的详细教程,涵盖了Java集合的例题、源码以及配套的PPT教学文档,...
本学习笔记由黑马程序员提供,旨在帮助初学者深入理解Java中的集合框架及其使用方法。 首先,我们来探讨“集合”的基本概念。在Java中,集合是一个对象容器,可以容纳多个元素,这些元素可以是任意类型的数据。Java...
在黑马程序员_毕向东_Java基础视频教程第14天-11-集合框架(ArrayList练习2).avi中,可能会详细讲解ArrayList的用法,包括如何创建ArrayList实例、向ArrayList中添加元素、删除元素、遍历ArrayList以及如何处理...
通过观看“黑马程序员_毕向东_Java基础视频教程第14天-06-集合框架(List集合具体对象的特点).avi”和“黑马程序员_毕向东_Java基础视频教程第14天-03-集合框架(迭代器).avi”,你将能深入了解Java集合框架中的List...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的数据存储和操作机制。集合框架的核心接口包括Collection和Map,它们分别代表单一对象的集合和键值对的集合。 1. Collection接口: ...
在文件"黑马程序员_毕向东_Java基础视频教程第14天-02-集合框架(共性方法).avi"中,毕老师可能会详细阐述这些共性方法的使用场景和实现原理,同时通过实例演示如何在实际编程中应用它们。理解并熟练掌握这些共性方法...
集合框架是处理对象集合的工具,包括List、Set、Queue和Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。 【面向对象编程】 Java支持类的继承、封装和多态。继承允许子类继承父类的属性和方法...
4. **第六章:集合框架** - **集合与数组的区别**:集合可动态调整大小,支持更灵活的数据操作。 - **List、Set与Map**:List保持元素的插入顺序,允许重复元素;Set不允许重复元素,无序;Map存储键值对,键唯一...
- **HashSet与HashMap**:理解无序不重复元素的存储和基于键值对的快速查找。 - **ArrayList与LinkedList的区别**:讨论在不同场景下选择哪种集合类型更合适。 3. **多线程**: - **线程的创建**:通过实现...