zoukankan      html  css  js  c++  java
  • Java 基础

    笔记:

    /**Set接口 及其实现类
     * 公用操作同Collection:
     *  *          ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法,
     *  *          ⑤ iterator 来返回迭代器对象⑥addall() 和removeall() ,添加或者删除全部!
     *  *          ⑦ Object[] toArray() ,将集合转换为Object数组
     *  1.实现类HashSet 使用哈希存储元素,高性能,没有排序!(随机存储的!)
     *          a.构造方法: HashSet()/HashSet(Collection c); HashSet(初始容量[,装填因子])
     *  2.实现类LinkedHashSet :哈希表和链表实现了Set接口,具有可预测的迭代次序;
     *                   这种实现不同于HashSet,它维持于所有条目的运行双向链表;
     *  3.接口SortedSet : 有序对象的集合,集合里所有元素对象类型要求一致,
     *              a. first()/last()
     *              b. subset(begin,end) ,返回一个子集合, 下标左闭右开
     *              c.SortedSet<E> headSet/tailed(E element) ,返回一个 小于/大于element 的 SortedSet集合;
     *  4.接口SortedSet实现类TreeSet :使用红黑树进行操作,基于元素的值对元素排序,操作比HashSet慢!
     *              (有序输出,数字从小到大,字符串按ASCII从小到大排序)
     *              a.构造方法: TreeSet(collection c) ,集合中自然元素按照自然顺序(从大到小)进行排序
     *              b.指定排序规则:  TreeSet(Comparator c) ,创建空树,按照c 的规则进行排序
     * ------------------------------------
     *  5.对象排序  (记到下一章去了)
     *              a.实现Comparable 接口
     *
     *              b.比较器Comparator
     */

    测试代码:

    public class TestSet {
    
        public static void main(String[] args) {
            HashSet<String> s1= new HashSet<String>();
            s1.add("hello");s1.add("ssdf");s1.add("dadsasd");s1.add("6666asda9");s1.add("666sada67");
            TestSet.test(s1);
            TestSet.test(s1);
            //////////////////
            LinkedHashSet<String> s2= new LinkedHashSet<String>();
            s2.add("hello");s2.add("ssdf");s2.add("dadsasd");s2.add("6666asda9");s2.add("666sada67");
            TestSet.test(s2);
            ///////Test TreeSet///////////
            TreeSet<Integer> s3=new TreeSet<Integer>();
            s3.add(34534);s3.add(345341);s3.add(345342);s3.add(34534);s3.add(34);s3.add(84);
            test(s3);
            TreeSet<String> s4=new TreeSet<String>();
            s4.add("ass");s4.add("ASS");s4.add("ab");s4.add("sssssss");s4.add("SSSSSS");s4.add("zZZZ");
            test(s4);
        }
        static void test(Collection s){
            for(Object o:s){
                System.out.print(o+"	");
            }
    
            System.out.println("---------->>"+s.getClass()+"---------");
        }
    }

    测试结果:

    666sada67    ssdf    dadsasd    hello    6666asda9    ---------->>class java.util.HashSet---------
    666sada67    ssdf    dadsasd    hello    6666asda9    ---------->>class java.util.HashSet---------
    hello    ssdf    dadsasd    6666asda9    666sada67    ---------->>class java.util.LinkedHashSet---------
    34    84    34534    345341    345342    ---------->>class java.util.TreeSet---------
    ASS    SSSSSS    ab    ass    sssssss    zZZZ    ---------->>class java.util.TreeSet---------
  • 相关阅读:
    Java中的Iterable与Iterator详解
    1、JAVA数据类型
    maven 国内阿里云镜像配置
    数据库优化以及SQL优化小结
    用IDEA生成javadoc文档
    Elastic Search 新手笔记(1)——入门篇
    MQ技术选型
    springboot + aop + Lua分布式限流的最佳实践
    go 变量声明作用域问题
    android 开发环境变量配置
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9787433.html
Copyright © 2011-2022 走看看