问题描述:
ArrayList元素去重是我们经常使用的功能,最容易想到的就是双层for循环去重,这里列举出其他的两种方式,如下:
方法一:
使用list的contains方法实现,代码如下:
List<String> list = new ArrayList<String>();
list.add("序号【99990aa1】不符合规范");
list.add("序号【99990aa1】不符合错误");
list.add("序号【99990aa1】不符合规范");
list.add("序号【99990aa1】不符合不对");
list.add("滴滴滴滴");
List<String> list1 = new ArrayList(list.size());
for(int i=0;i<list.size();i++){
if(!list1.contains(list.get(i)))
list1.add(list.get(i));
}
for (String s : list1) {
System.out.println("过滤后集合元素:"+ s);
}
输出:
过滤后集合元素:序号【99990aa1】不符合规范
过滤后集合元素:序号【99990aa1】不符合错误
过滤后集合元素:序号【99990aa1】不符合不对
过滤后集合元素:滴滴滴滴
方法二:
使用stream流进项操作,代码如下:
List<String> list = new ArrayList<String>();
list.add("序号【99990aa1】不符合规范");
list.add("序号【99990aa1】不符合错误");
list.add("序号【99990aa1】不符合规范");
list.add("序号【99990aa1】不符合不对");
list.add("滴滴滴滴");
List<String> list1 = list.stream().distinct().collect(Collectors.toList());
for (String s : list1) {
System.out.println("过滤后集合元素:"+ s);
}
执行后效果方法一。