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);
}
}