方案一:借助Set的特性进行去重
/**
* 去除重复数据
* 由于Set的无序性,不会保持原来顺序
* @param list
*/
public static List list distinct(List list) {
final boolean sta = null != list && list.size() > 0;
List doubleList= new ArrayList();
if (sta) {
Set set = new HashSet();
set.addAll(list);
doubleList.addAll(set);
}
return doubleList;
}
方案二 : 利用set集合特性保持顺序一致去重
// Set去重并保持原先顺序的两种方法
public static void delRepeat(List list) {
//方法一
List listNew = new ArrayList(new TreeSet(list));
//方法二
List listNew2 = new ArrayList(new LinkedHashSet(list));
}
方案三 : 使用list自身方法remove()–>不推荐
/**
* 去除重复数据(一般不推荐)
* 类似于冒泡排序思想
* @param list
*/
public static List
方案四 : 遍历List集合,将元素添加到另一个List集合中
// 遍历后判断赋给另一个list集合,保持原来顺序
public static List delRepeat(List list) {
List listNew = new ArrayList();
for (String str : list) {
if (!listNew.contains(str)) {
listNew.add(str);
}
}
return listNew ;
}
方案5 : 使用Java8特性去重
public static List delRepeat(List list) {
List myList = list.stream().distinct().collect(Collectors.toList());
return myList ;
}