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

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47414935

ArrayList是Java中最经常使用的集合类型之中的一个。它同意灵活加入多个null元素,反复的元素,并保持元素的插入顺序。在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除反复元素的要求。这篇文章将给出两种从ArrayList中删除反复元素的方法。

方法1:使用HashSet删除ArrayList中反复的元素

在该方法中。我们使用HashSet来删除反复的元素。

如你所知,HashSet不同意有反复的元素。我们使用HashSet的这个属性来删除已建 成的ArrayList中的反复元素。可是,这样的方法有一个缺点。那就是,它会删除ArrayList中元素的插入顺序。

这意味着。删除反复的元素后,元 素的插入顺序就不正确了。先来看以下这个样例

import java.util.ArrayList;
import java.util.HashSet;

public class MainClass
{
    public static void main(String[] args)
    {
        //Constructing An ArrayList

		ArrayList<String> listWithDuplicateElements = new ArrayList<String>();

		listWithDuplicateElements.add("JAVA");

		listWithDuplicateElements.add("J2EE");

		listWithDuplicateElements.add("JSP");

		listWithDuplicateElements.add("SERVLETS");

		listWithDuplicateElements.add("JAVA");

		listWithDuplicateElements.add("STRUTS");

		listWithDuplicateElements.add("JSP");

		//Printing listWithDuplicateElements

		System.out.print("ArrayList With Duplicate Elements :");

		System.out.println(listWithDuplicateElements);

		//Constructing HashSet using listWithDuplicateElements

		HashSet<String> set = new HashSet<String>(listWithDuplicateElements);

		//Constructing listWithoutDuplicateElements using set

		ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(set);

		//Printing listWithoutDuplicateElements

		System.out.print("ArrayList After Removing Duplicate Elements :");

		System.out.println(listWithoutDuplicateElements);
    }
}

输出:

ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP]

ArrayList After Removing Duplicate Elements :[JAVA, SERVLETS, JSP, J2EE, STRUTS]

注意输出结果。

你会发现,在删除反复元素之后,元素又一次洗牌。不再依照插入顺序排列。假设你想在删除反复的元素之后依旧保持元素的插入顺序,那么不 建议使用此方法。还有还有一种方法,能够保证在删除反复的元素之后也不改变元素的插入顺序。那就是使用LinkedHashSet。

方法2:使用LinkedHashSet删除ArrayList中反复的元素

在该方法中。我们使用LinkedHashSet删除ArrayList中反复的元素。正如你知道的,LinkedHashSet不同意反复元素, 同一时候保持元素的插入顺序。LinkedHashSet的这两个属性能够确保在删除ArrayList中的反复元素之后。依旧保持元素的插入顺序。

參见以下 的样例。

import java.util.ArrayList;
import java.util.LinkedHashSet;

public class MainClass
{
    public static void main(String[] args)
    {
        //Constructing An ArrayList

		ArrayList<String> listWithDuplicateElements = new ArrayList<String>();

		listWithDuplicateElements.add("JAVA");

		listWithDuplicateElements.add("J2EE");

		listWithDuplicateElements.add("JSP");

		listWithDuplicateElements.add("SERVLETS");

		listWithDuplicateElements.add("JAVA");

		listWithDuplicateElements.add("STRUTS");

		listWithDuplicateElements.add("JSP");

		//Printing listWithDuplicateElements

		System.out.print("ArrayList With Duplicate Elements :");

		System.out.println(listWithDuplicateElements);

		//Constructing LinkedHashSet using listWithDuplicateElements

		LinkedHashSet<String> set = new LinkedHashSet<String>(listWithDuplicateElements);

		//Constructing listWithoutDuplicateElements using set

		ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(set);

		//Printing listWithoutDuplicateElements

		System.out.print("ArrayList After Removing Duplicate Elements :");

		System.out.println(listWithoutDuplicateElements);
    }
}

输出:

ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP]

ArrayList After Removing Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, STRUTS]

注意输出。你能够发如今删除ArrayList中的反复元素后。依旧保持了元素的插入顺序。

时间: 2024-12-15 14:25:46

Java之——删除ArrayList中的反复元素的2种方法的相关文章

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

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

js中常用追加元素的几种方法:append,appendTo,after,before,insertAfter,insertBefore,appendChild

js中常用追加元素的几种方法,点击下面每个按钮,即可查看效果 我是第一个子元素 我是第二个子元素 append appendTo prepend prependTo after before appendChild insertAfter insertBefore

用java来删除数组中指定的元素

public static void main(String[] args){        String[] a = new String[]{"1","5","3","7"};        String[] b = new String[]{"2","3","4"};        String[] arrResult = arrContrast(a, b); 

java怎么删除List中的指定元素

ArrayList al = new ArrayList(); al.add("a"); al.add("b"); //al.add("b"); //al.add("c"); //al.add("d"); for (int i = 0; i < al.size(); i++) { if (al.get(i) == "b") { al.remove(i); i--; } }

关于html与css中隐藏一个元素的几种方法

1,将元素的display属性设为none <div style="display:none">看不见我</div> 2,<input>标签元素的type属性设为hidden <input type="hidden" name="看不见我"> 3,将元素的width和heigth都设为0 <div style="width:0:heigth:0:background-color:re

python中删除某个元素的3种方法

python中关于删除list中的某个元素,一般有三种方法:remove.pop.del 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除举例说明: >>> str=[1,2,3,4,5,2,6] >>> str.remove(2) >>> str [1, 3, 4, 5, 2, 6] 2.pop: 删除单个或多个元素,按位删除(根据索引删除) ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合

【方法1】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录

介绍 晚上无聊的时候,我做了一个測试题,測试题的大体意思是:删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录. 比如: I have a map with duplicate values: ("A", "1"); ("B", "2"); ("C", "2"); ("D", "3"); ("E", "

Java如何向容器中添加一组元素详解(附源码)

前言 在java.util包中的Arrays和Collections类中都有很多实用方法,可以在一个Collection中添加一组元素.Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个List对象.Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分隔的元素列表,将元素添加到Collection中.下面的示例展示了这两个方法,以及更加传统addAll()方法,所有Collection

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S