list去重 转载
http://blog.csdn.net/huaishuming/article/details/47778319
1. 单个List 去重:
如果用的是Set集合就不用怕重复的问题了,如果用的List就要想办法将它变为Set
- package com;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
- public class Test4 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- List<String> l1 = new ArrayList<String>();
- l1.add("a");
- l1.add("b");
- l1.add("c");
- l1.add("e");
- l1.add("e");
- l1.add("e");
- l1.add("e");
- l1.add("a");
- List<String> listWithoutDup = new ArrayList<String>(new HashSet<String>(l1));
- for(String str : listWithoutDup){
- System.out.println(str);
- }
- }
- }
2. 2个集合合并后去重:
- package com;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
- public class Test3 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- List<String> l1 = new ArrayList<String>();
- l1.add("a");
- l1.add("a");
- l1.add("c");
- l1.add("c");
- List<String> l2 = new ArrayList<String>();
- l2.add("b");
- l2.add("b");
- l2.add("k");
- l2.add("k");
- l1.removeAll(l2);//此处指的是将与l2重复的删除
- l1.addAll(l2);//此处指加上l2
- //如果保证l1,和l2 2个各自的LIST 本身不重复,此行代码不用写。否则会出现合并后LIST重复的问题,具体看业务需要
- l1 = new ArrayList<String>(new HashSet<>(l1));
- for(String str : l1){
- System.out.println(str);
- }
- }
- }
结果:
b
c
a
k
如果没有
- l1 = new ArrayList<String>(new HashSet<>(l1));
- 则结果为:a
- a
- c
- c
- b
- b
- k
- k