java List去除重复内容
list去除重复内容方式1
使用迭代器循环并判断当前元素首次出现的位置(indexOf)是否等于最后出现的位置(lastIndexOf),如果不等于则说明此元素为重复元素并删除当前元素,循环一次即可得到一个没有重复元素的集合
public class ListQuChong {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建并给 List 赋值
List<String> list = new ArrayList<>();
list.add("张三");
list.add("王五");
list.add("李四");
list.add("王五");
list.add("赵六");
// 去重操作
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (list.indexOf(item) != list.lastIndexOf(item)) {
iterator.remove();
}
}
list.forEach(people -> System.out.println(people));
}
}
打印输出:
张三
李四
王五
赵六list去除重复内容方式2:利用set去重复内容
public class ListQuChong {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建并给 List 赋值
List<String> list = new ArrayList<>();
list.add("张三");
list.add("王五");
list.add("李四");
list.add("王五");
list.add("赵六");
list.add("赵六");
// 去重操作
//HashSet<String> set = new HashSet<>(list); //使用HashSet会打乱原有的list顺序
//TreeSet<String> set = new TreeSet<>(list); //使用TreeSet会打乱原有的list顺序
LinkedHashSet<String> set = new LinkedHashSet<>(list);
set.forEach(people -> System.out.println(people));
}
}
list去除重复内容方式3: JDK8中Stream去重复内容
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建并给 List 赋值
List<String> list = new ArrayList<>();
list.add("张三");
list.add("王五");
list.add("李四");
list.add("王五");
list.add("赵六");
list.add("赵六");
// 去重复操作
list = list.stream().distinct().collect(Collectors.toList());
list.forEach(p -> System.out.println(p));
}
}输出:

总结:
以上三种list去重内容方式,如果你的java环境是jdk1.8推荐使用最后一种去重方法,这方法最简单最方便且也未创建新的集合或是队列的耗时操作,如果你的java环境低于1.8版本,推荐使用第二种LinkedHashSet方法,
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。





评论