去除ArrayList中的重复元素

ArrayList中可以存在重复元素的,若要去除重复元素必须要进行扫描,其实在原理上和数组去除重复元素是一样的。

可以利用contains方法来确定ArrayList中是否存在某个元素。

但是ArrayList中可以放任意的对象,那怎么定义各个对象是否是相同的?

可以通过自己定义类的专属equals方法,定义规则确定某两个对象是否相同,因为contains在判断某个元素是否存在ArrayList中,也是在比较这个元素时候是否和容器中存在的元素相同,若相同则存在,若不相同则不存在,contains运行的基础是在equals的方法之上的!

首先定义Person类

class Person

{

????private String name;

????private int age;

?

????Person(String name, int age)

????{

????????this.name = name;

????????this.age = age;

????}

????//定义若两个人的名字和年龄相同则两个人相同

????public boolean equals(Object obj) //此方法是虚拟机自动调用的

????{

????????if(!(obj instanceof Person)) //此处先判断所判断元素是否属于Person

????????????return false;

?

????????Person p = (Person) obj;

?

????????return this.name.equals(p.name) && this.age==p.age; //若返回为真则说明二者相同

????}

?

????public String getName()

????{

????????return this.name;

????}

?

????public int getAge()

????{

????????return this.age;

????}

}

//这是主函数类

public class Test

{

????public static void main(String[] args)

????{

????????//声明一个容器,然后向其中添加4个元素

????????ArrayList<Person> al = new ArrayList<>();

????????al.add(new Person("zhangsan", 20));

????????al.add(new Person("lisi", 22));

????????al.add(new Person("zhangsan", 20));

????????al.add(new Person("lisi", 20));

?

????????ArrayList<Person> al2 = Test.operate(al);

?

????????Iterator<Person> it = al2.iterator();

?

????????while(it.hasNext())

????????{

????????????Person p = it.next();

????????????System.out.println(p.getName()+"--"+p.getAge());

????????}

????}

????//这个函数来处理用于去除相同元素

????public static ArrayList<Person> operate(ArrayList<Person> al)

????{

????????ArrayList<Person> newAl = new ArrayList<>();

?

????????Iterator<Person> it = al.iterator();

?

????????while(it.hasNext())

????????{

????????????Person p = it.next();

????????????if(!newAl.contains(p))

????????????????newAl.add(p);

????????}

?

????????return newAl;

????}

}

时间: 2024-10-19 03:55:33

去除ArrayList中的重复元素的相关文章

Java之——删除ArrayList中的重复元素的2种方法

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47414935 ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除重复元素的要求.这篇文章将给出两种从ArrayList中删除重复元素的方法. 方法1:使用HashSet删除ArrayList中重复的元素 在该方法中,我们使用HashSet来删除重复

去除数组中的重复元素

方法1:开辟辅助空间 #include<vector> #include<algorithm> #include<iostream> #define LENGTH 10 using namespace std; void Unique(){ int array[LENGTH]={1,1,1,2,2,4,4,6,6,6}; int pre=array[0],cur=array[1]; int temp[LENGTH]; int k=0; int i=1;//cur和i指向

Java中ArrayList问题:删除一个ArrayList中的重复元素,注意留意一个问题

该问题有两种方法: 一 利用两个数组,此法简单,不讨论 二 利用一个数组,从第0个开始依次取元素,并在其后元素中查找是否有该元素,有则删掉后面的重复元素,依次遍历.---但是这种情况要特别注意,当后续元素中有连续的重复元素时,如不加上y--使y(待比较的后续元素)回退一个,很可能会因为我们删掉当前重复元素y后其后的连续重复元素顶上,导致忽略掉顶上的重复元素. 代码如下: 1 public static void main(String[] args) { 2 ArrayList array=ne

去除数组中所有重复元素

//去除数组中重复元素 var arr = [0,2,3,1,5,5,8,8,2,1,10,10,43,43]; var json = {}; for (var i = 0; i < arr.length; i++) { if (!json[arr[i]]) { json[arr[i]] = arr[i]; } }; 输出结果:0,1,2,3,5,8,10,43 //删除函数中指定的元素 //这样就构造了这样一个函数,比如我有有一个数组: var emp = ['abs','dsf','sdf'

去除数组中的重复元素的方法

1.去重 清除数组中重复出现的元素: var    arr1 = [ 1,3,3,4,4 , 4,"aba","aba" ];   //数组字面量的形式创建数组. var    arr2 = [ ]; for ( var i=0; i<arr1.length; i++){ if(arr2.indexOf(arr1[i])<0){          // 在数组arr2中匹配是否有arr[i]这个元素存在,有就返回这个元素在数组中的下表位置,没有匹配返回-

//去除list中的重复元素放入到 hashset中,l是 arrayList

HashSet<String> hs = new HashSet<String>(l); //给arrayList 或 数组 或 hashSet 拼接成字符串 String str= StringUtils.join(hs, "+");

javascript中去除数组中的重复元素

1 <script type="text/javascript"> 2 var arr = ["b" ,"a" , "a", 2, 3, 3, 2, 1, 4, {}]; 3 Array.prototype.unique = function(){ 4 var ret = []; 5 var o = {};//这个对象在这里其实是起一个临时容器的作用,在下面的操作中,每次从数组取一个元素,然后判断以这个元素为属性名

javascript去除数组中的重复元素

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

python四种方法实现去除列表中的重复元素

转载:https://blog.csdn.net/together_cz/article/details/76201975 def func1(one_list): ''''' 使用集合,个人最常用 ''' return list(set(one_list)) def func2(one_list): ''''' 使用字典的方式 ''' return {}.fromkeys(one_list).keys() def func3(one_list): ''''' 使用列表推导的方式 ''' tem