List中去掉重复的值
例如现在有一个list, list里面存放班级名字,有重复值,现在需要去掉其中某一个值
package com.newture.offer;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
* List中去掉重复的值
* @author Admin
*
*/
//现在有一个list, list里面存放班级名字,有重复值,现在需要去掉其中某一个值,请问怎么实现?
public class P1 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张1");
list.add("张2");
list.add("张3");
list.add("张3");
list.add("张4");
list.add("张4");
list.add("张5");
list.add("张6");
list.add("张6");
list.add("张7");
list.add("张8");
System.out.println("去重复之前:"+list);
}
}
//方式一:循环所有元素,利用双重for循环剔除重复元素
for (int i = 0; i < list.size() - 1; i++) {
for (int j = list.size() - 1; j > i; j--) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
//方式二:通过HashSet的不重复性踢除重复元素
HashSet<String> set = new HashSet<String>(list);
list.clear();
list.addAll(set);
System.out.println("去重复之后:"+list);
// 通过LinkedHashSet的不重复性踢除重复元素
HashSet<String> linklist = new LinkedHashSet<String>(list);
for (String name : linklist) {
System.out.println("去重复之后:"+name);
}
//方式三:通过Java8新特性stream去重
list.stream().distinct().collect(Collectors.toList()).forEach(System.out::println);