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

1、使用HashSet

  HashSet的元素是不可重复的,且元素的顺序是无序的,元素可以使null,但是只能有一个null(元素不可重复)。

 1 import java.util.ArrayList;
 2 import java.util.HashSet;
 3 
 4 public class ArrayListTest1 {
 5     public static void main(String[] args){
 6         ArrayList<String> al1 = new ArrayList<String>();
 7         al1.add("A1");
 8         al1.add("A2");
 9         al1.add("A3");
10         al1.add("A2");
11         al1.add("A4");
12         al1.add("A1");
13         al1.add("A5");
14         System.out.println("删除重复元素之前:"+al1);
15         
16         HashSet<String> set = new HashSet<String>(al1);
17         ArrayList<String> al2 = new ArrayList<String>(set);
18         
19         System.out.println("删除重复元素之后:"+al2);
20     }
21 }

结果:

  从结果可以看出,使用HashSet来删除ArrayList的重复元素以后,元素的顺序改变了。

2、使用LinkedHashSet

  LinkedHashSet不允许有重复元素,同时保持元素的插入顺序。

 1 package hibernate.crud.domain.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.LinkedHashSet;
 5 
 6 public class ArrayListTest2 {
 7     public static void main(String[] args){
 8         ArrayList<String> al1 = new ArrayList<String>();
 9         al1.add("A1");
10         al1.add("A2");
11         al1.add("A3");
12         al1.add("A2");
13         al1.add("A4");
14         al1.add("A1");
15         al1.add("A5");
16         System.out.println("删除重复元素之前:"+al1);
17         
18         LinkedHashSet<String> set = new LinkedHashSet<String>(al1);
19 
20         ArrayList<String> al2 = new ArrayList<String>(set);
21         
22         System.out.println("删除重复元素之后:"+al2);
23     }
24 }

结果:

  从结果可以看出,使用LinkedHashSet来删除ArrayList的重复元素以后,还是原来的插入顺序。

posted @ 2015-08-12 11:07  java新手编程  阅读(307)  评论(0)    收藏  举报