Java List集合 去重的多种方法 (保留顺序和不保留顺序的)

1.循环list中的所有元素然后删除重复

/**
* 循环list中的所有元素然后删除重复
* @param list 待去重的list
* @return 去重后的list
*/
public static <T> List<T> removeDuplicate(List<T> list){
  for(int i=0;i<list.size()-1;i++){
      for(int j=list.size()-1;j>i;j--){
          if (list.get(j).equals(list.get(i))){
              list.remove(j);
          }
      }
  }
  return list;
}

2.通过HashSet去重

/**
 * 通过HashSet去重
 * @param list 待去重的list
 * @return 去重后的list
 */
public static <T> List<T> removeDuplicateHashSet(List<T> list){
    HashSet<T> hs = new HashSet<>(list);
    list.clear();
    list.addAll(hs);
    return list;
}

3.删除List中重复元素,并保持顺序

/**
 * 删除List中重复元素,并保持顺序
 * @param list 待去重的list
 * @return 去重后的list
 */
public static <T> List<T> removeDuplicateKeepOrder(List<T> list){
    Set set = new HashSet();
    List<T> newList = new ArrayList<>();
    for (T element : list) {
        //set能添加进去就代表不是重复的元素
        if (set.add(element)) newList.add(element);
    }
    list.clear();
    list.addAll(newList);
    return list;
}

4.利用list.contain() 去重

/**
 * 利用list.contain() 去重
 * @param list
 * @return
 */
public static <T> List<T> removeDuplicateContain(List<T> list){
    List<T> listTemp = new ArrayList<>();
    for (T aList : list) {
        if (!listTemp.contains(aList)) {
            listTemp.add(aList);
        }
    }
    return listTemp;
}
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Java语言中,可以使用Set集合的特性来对List集合进行去重操作。一种常见的方法是将List集合中的元素放入Set集合中,然后再将Set集合转回List集合。这样可以利用Set的无序且不可重复的特性来去除重复元素。以下是一个示例代码: ```java List<String> list = new LinkedList<>(); list.add("22"); list.add("11"); list.add("33"); list.add("66"); list.add("22"); Set<String> set = new HashSet<>(list); List<String> result = new LinkedList<>(set); System.out.println("去重后的集合:" + result); ``` 另外,如果你希望保持原来插入时的顺序,可以使用LinkedHashSet集合来进行去重操作。LinkedHashSet可以保持元素插入的顺序,但不能对数据进行排序。以下是一个示例代码: ```java List<String> list = new LinkedList<>(); list.add("22"); list.add("11"); list.add("33"); list.add("66"); list.add("22"); LinkedHashSet<String> set = new LinkedHashSet<>(list); List<String> result = new LinkedList<>(set); System.out.println("去重后的集合:" + result); ``` 如果你希望对元素进行排序,可以使用TreeSet集合。TreeSet可以按照字典顺序对元素进行排序。以下是一个示例代码: ```java List<String> list = new LinkedList<>(); list.add("22"); list.add("11"); list.add("33"); list.add("66"); list.add("22"); TreeSet<String> set = new TreeSet<>(list); List<String> result = new LinkedList<>(set); System.out.println("去重后的集合:" + result); ``` 希望这些代码可以帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值