ArrList集合去重(转)

package cn.yun.practice;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class Max {
public static void main(String[] args) {
ArrayListMethod3();
}
/**

  • ArrayList集合去重复

  • 按插入顺序输出

  • 1,创建一个带有重复数字的集合

  • 2,创建一个空的新集合,用来存放不重复的数字

  • 3,使用for循环遍历带有重复数字的集合,遍历的时然后使用if判断,判断新集合中是否存在该元素

  • 如果存在就不管他,如果不存在就添加到新集合中,

  • 判断该集合中是否包含制定元素:list2.contains();参数传指定的元素

  • 向集合中添加指定元素:add();参数传指定元素

  • 4,输出去重复以后的集合
    */
    public static void ArrayListMethod() {
    //创建一个带有重复的集合
    List list=new ArrayList<>();
    //向集合中添加含有重复的内容
    list.add(15);
    list.add(19);
    list.add(15);
    list.add(23);
    list.add(19);
    list.add(7);
    //创建一个空的新集合,用于存放不重复的内容
    List list2=new ArrayList<>();
    //使用for循环遍历带有重复的集合
    for(int i=0;i<list.size();i++) {
    //获取到遍历的每一个元素
    Integer ig=list.get(i);
    //然后将获取到的元素与新集合进行判断,判断新集合中是否包含该元素,如果不包含就添加进去,如果包含就不管他
    //使用contains()进行判断,如果包含此元素true 不包含false
    if(!list2.contains(ig)) {
    list2.add(ig);//向新集合中添加不重复的元素
    }

     }
     System.out.println(list2);//输出不重复的集合
    

    }
    /**

  • 使用HashSet去重复

  • 不保证输出顺序

  • HashSet底层是哈希表结构。无序 唯一

  • 保证元素的唯一性主要依赖两个方法 hashCode()和equals()
    /
    public static void ArrayListMethod2() {
    //创建一个带有重复的集合
    List list=new ArrayList<>() ;
    //向集合中添加重复的内容
    list.add(12);
    list.add(65);
    list.add(12);
    list.add(32);
    list.add(15);
    list.add(32);
    //创建HashSet集合,参数传入需要去重复的集合
    Set set=new HashSet<>(list);
    //将带有重复元素的集合清空
    list.clear();
    //将去除重复以后的集合添加到清空以后的集合中
    list.addAll(set);
    //输出除去重复元素以后的集合
    System.out.println(list);
    }
    /
    *

    • 使用TreeSet去除重复
    • 输出顺序为自然排序
    • TreeSet底层是红黑树结构,有序且唯一
    • 保证元素的排序是通过自然排序法和比较器排序法
    • 保证元素的唯一是根据比较的返回值是否为0来决定
      */
      public static void ArrayListMethod3() {
      //创建一个带有重复的集合
      List list=new ArrayList<>() ;
      //向集合中添加重复的内容
      list.add(12);
      list.add(65);
      list.add(12);
      list.add(32);
      list.add(15);
      list.add(32);
      //创建TreeSet集合,将需要去重复的集合传入
      Set set=new TreeSet<>(list);
      //将带有重复元素的集合清空
      list.clear();
      //将不含重复元素的集合添加到清空以后的集合中
      list.addAll(set);
      //输出去除重复元素以后的集合
      System.out.println(list);

}

}
上一篇:代码优化介绍


下一篇:一分钟了解各种js判断类型方法的优缺点