大家好,又见面了,我是你们的朋友全栈君。
总结下。
1. 使用java8新特性stream进行List去重
public static List<String> delRepeat(List<String> list) {
List<String> myList = listAll.stream().distinct().collect(Collectors.toList());
return myList ;
}
2.双重for循环去重 (不推荐使用,速度太慢)
实际是使用list自身方法remove()方法。
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); ) {
if (i != j && list.get(i) == list.get(j)) {
list.remove(j);
} else {
j++;
}
}
}
3.set集合判断去重
不打乱顺序
A // Set去重并保持原先顺序的两种方法
public static void delRepeat(List<String> list) {
//方法一
List<String> listNew = new ArrayList<String>(new TreeSet<String>(list));
//方法二
List<String> listNew2 = new ArrayList<String>(new LinkedHashSet<String>(list));
}
B
Set set1 = new HashSet();
List newList1 = new ArrayList();
for (Integer integer : list) {
if(set1.add(integer)) {
newList1.add(integer);
}
}
打乱顺序
/**
* 去除重复数据
* 由于Set的无序性,不会保持原来顺序
* @param list
*/
public static List<Map<String, Object>> distinct(List<Map<String, Object>> list) {
final boolean sta = null != list && list.size() > 0;
if (sta) {
Set set = new HashSet();
List doubleList= new ArrayList();
set.addAll(list);
doubleList.addAll(set2);
return doubleList;
}
return null;
}
4.遍历后判断赋给另一个list集合
List newList2 = new ArrayList();
for (Integer integer : list) {
if(!newList2.contains(integer)){
newList2.add(integer);
}
}
5.
Set set2 = new HashSet();
List newList3 = new ArrayList();
set2.addAll(list);
newList3.addAll(set2);
System.out.println(“set和list转换去重:”+newList3);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142635.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...