day17 Java学习(Set集合)

框架集合(HashSet存储字符串并遍历)

    Ser集合:无索引,不可以重复,无序(存取不一致)。

实例:

        /*
         * Set集合无索引,不可以重复,无序(存取不一致)。
         */
        HashSet<String> list=new HashSet<>();    //创建HashSet对象
//        boolean b1=list.add("a");
//        boolean b2=list.add("a");              //当向set集合添加重复元素为false
        
        list.add("v"); 
        list.add("z"); 
        list.add("c"); 
        for (String string : list) {
            System.out.println(string);
        }
遍历Set集合字符串

 

框架集合(HashSet如何保证元素唯一性)

1.HashSet原理

     * 我们使用Set集合都是需要去掉重复元素的。

 

 2. 将自定义类的对象存入HashSet去重复

      * 类中必须重写hashCode( ) 和equals( )方法。

 

框架集合(LinkedHashSet)

   LinkedHashSet:底层是链表实现的,是Set集合中唯一一个能保证怎么存就怎么取的集合对象。

   因为是HashSet的子类,所以也是保证元素唯一的。

 

/*
 *取除List集合中的重复元素 
 */
        public static void getSingle(List<String> list) {
        // 创建一个LinkedHashSet集合
        LinkedHashSet<String> list1 = new LinkedHashSet<>();
        // 将List集合中的所有元素添加到LinkedHashSet集合。
        list1.addAll(list);
        // 将List集合中的元素清除。
        list.clear();
        // 将LinkedHashSet集合中的所有元素重新添加到List集合。
        list.addAll(list1);

    }
去除集合重复元素

 

框架集合(TreeSet存储Integer类型元素并遍历)

    TreeSet集合是用来对象元素进行排序的,同样它也可以保证元素的唯一。

 

public static void sort(ArrayList<String> list) {
        //创建TreeSet集合对象,本身具备比较功能,但是重复不会保留,所以我们用比较器      (匿名内部类)
         TreeSet<String> ts=new TreeSet<>(new Comparator<String>() {    

            @Override
            public int compare(String s1, String s2) {
                // TODO 自动生成的方法存根
                int num = s1.compareTo(s2);
                return num == 0 ? 1 : num;
            } 
        });
        //2.将list集合中的元素添加到TreeSet集合中,对其排序,保留重复
         ts.addAll(list);
         // 3.清空list集合
         list.clear();
         // 4.将TreeSet集合中排好序的元素添加到list中
        list.addAll(ts);
        
    }
对集合排序并保留重复元素

 

posted @ 2019-05-28 02:21  锋XX  阅读(167)  评论(0编辑  收藏  举报