美文网首页
Java数据结构 Collection、Map

Java数据结构 Collection、Map

作者: 假装是坏人 | 来源:发表于2017-09-08 13:35 被阅读23次

    总述:数据非常重要。选择正确的数据结构,程序会在效率和安全性上又很好的表现。
    在JDK1.5后,加入了泛型支持,保证了添加元素的类型安全。列表中可以添加基本类型数据和引用类型。实际上,Java在添加基本类型,做了自动封箱操作,在取时,自动做了拆箱操作,也就是将基本类型数据,转化成封装类。基本类型和对象类型在jvm中占的内存大小,不一样,后者比前者大至少3-4倍。另外,拆、封箱的计算量也是消耗。在选择是使用数组,还是高级数据结构时,需要根据使用情况考虑

    0.Array

    • 数组属于,Java数据类型:8种基本类型、引用类型。其中的引用类型;
    • 数组的初始化,静态和动态初始化;
    • 数组在内存种是连续的,这一性质决定了,数组随机访问的快速性(通过下标)
    • 数组可以存放基本类型数据,也可以存放对象类型数据
    • 其他高级数据结构,基本由数组或链表构成
    • Arrays工具类的使用
        /**
         *  1.Arrays工具类的使用。在Java JDK1.8 中提供的很多数据结构,
         *  如:ArrayList,HashMap 等有数组实现的数据容器中,容器的扩容,
         *  其实就是数组的扩容
         */
        private void testArrays(){
            int [] arr1=new int[]{1,2,3,4,5,6,7,8,9};
            int [] arr2=new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13};
            //2.二分查找,数组中元素 8
           int pos= Arrays.binarySearch(arr1,8);
            //3.复制到长度2,得到一个新数组
           int[] cArr=  Arrays.copyOf(arr1,2);
            //4. 下标form 3 to 5 这一区间
           int[] crArr= Arrays.copyOfRange(arr1,3,5);
            //5.数组相等, equals 三部曲
           boolean isEqual=Arrays.equals(arr1,arr2);
            Log.i("pos",""+pos);
            Log.i("cArr",""+Arrays.toString(cArr));
            Log.i("crArr",""+Arrays.toString(crArr));
            Log.i("isEqual",""+isEqual);
        }
    

    打印结果:

    09-08 03:41:51.943 6465-6465/com.example.kaiser.datastructure I/pos: 7
    09-08 03:41:51.943 6465-6465/com.example.kaiser.datastructure I/cArr: [1, 2]
    09-08 03:41:51.943 6465-6465/com.example.kaiser.datastructure I/crArr: [4, 5]
    09-08 03:41:51.943 6465-6465/com.example.kaiser.datastructure I/isEqual: false
    

    1.Colloection

    1.1List

    • Arraylist
      底层实现是数组,所以在随机访问,效率比较快。
    • LinkedList
      底层链表
    • Vector
      线程安全的

    1.2Set

    无序,元素不可重复

    • SortSet
    • TreeSet
    • LinkedHashSet

    1.3Queue

    2.Map

    数组加链表的实现

    2.1HasMap

    2.2TreeMap 有序Map

    2.3HashTable 线程安全

    3.比较

    相关文章

      网友评论

          本文标题:Java数据结构 Collection、Map

          本文链接:https://www.haomeiwen.com/subject/ybdgjxtx.html