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方法,
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论