zoukankan      html  css  js  c++  java
  • 集合框架及泛型类

    一、集合框架

        用途:存储数据。

        包:java.util

        接口:Collection、Map、List、Set、Iterator

        类:ArrayList、LinkedList、HashSet、HashMap

        辅助类(算法类):Collections

        注意:List和Set均继承自接口Collection

              ArrayList和LinkedList都实现了接口List

              HashSet实现了接口Set

              HashMap实现了接口Map

              Iterator = Collection.iterator()

    二、集合的使用特点

        List:存储不唯一,有序(存储的顺序和插入顺序)的对象

        Set:存储唯一,无序的对象    

        Map:存储一组键值对对象,提供key到value的映射

    三、List接口

        ArrayList:

           适用场景:从ArrayList中查找元素速度很快,性能高。不适合对集合元素频繁进行插入、修改、移出操作的场景。

           特点:长度可变,在内存中分配连续的空间。       

           add(Object object):向集合中添加元素

           size():获取集合中元素的个数

           get(int index):获取集合中指定位置的元素(index指代元素的索引下标)。

           remove(int index) remove(Object obj):移除元素

           clear():清空所有元素

           isEmpty():判断集合是否为空

        LinkedList:

            适用场景:对LinkedList进行频繁插入、修改、移出操作时速度快,性能高。查找元素时不如ArrayList性能高。

            特点:实现了链表方法来存取数据。

            LinkedList包含add、get、remove、clear、isEmpty、size等方法,

            还提供了addFirst()、addLast()、removeFirst()、removeLast()、getFirst()、getLast()等方法。

    四、Set接口

        HashSet:

            特点:存储一组唯一(不相等)、无序的对象。

            注意:

                 HashSet如何判断2个对象是否相等?如果2个对象的toString()方法和hashCode()方法的返回值都相等,则两个对象相等。

                 HashSet没有get方法,用来获取元素。原因是添加进去的元素是没有顺序的(添加的顺序和存储的顺序不一致)。

            如何遍历循环HashSet

                 通过Iterator接口实现对HashSet的遍历

                 1.hasNext():用于判断集合中是否还存在下一个元素。

                 2.next():获取集合中的下一个元素。

                 HashSet set = new HashSet();

         set.add(1);

         set.add("zhangsan");

         set.add("河北省");

         //循环遍历

         Iterator list = set.iterator();

         while(list.hasNext()){

    Object obj = list.next();

    System.out.println(obj.toString() + obj.hashCode());

         }

                 

    五、Map接口

        HashMap:

    特点:以键值对的方式存储数据。

            注意:键key不能重复。

    六、泛型类

        数据类型参数化。

        上述集合类和接口,都提供了对应的泛型类和接口

        Collection -> Collection<E>   List -> List<E>   Set -> Set<E>   Map -> Map<K, V>   Iterator -> Iterator<E>

        ArrayList -> ArrayList<E>   LinkedList -> LinkedList<E>   HashSet -> HashSet<E>   HashMap -> HashMap<K, V>

        优点:不用频繁进行数据类型转换(向上转型、向下转型)

              

    七、Collections算法类

        提供了一组方法,用于对集合实现某些功能。

        max():求集合中最大的元素

        min():求集合中最小的元素

        sort():对集合中的元素进行排序。

        注意:使用上述方法,要求让集合元素的数据类型实现Comparable<E>接口

  • 相关阅读:
    金额格式化vue组件实现
    微信小程序scroll-view滚动到最底部
    腾讯云点播开发引入mui.js 导致播放控件点击事件多次触发
    nodejs中使用crypto-js先HmacSha1加密后转Base64
    vue filters中使用data中数据
    移动web开发中input等输入框问题
    d3-tip中show在自己调用时需要改变this值
    js函数式编程curry与compose实现
    mui中confirm在苹果出现bug,confirm点击确定跳转页面再返回后,页面被遮罩盖住无法使用
    mui上拉加载会影响页面中的某些点击事件
  • 原文地址:https://www.cnblogs.com/liuxinsir/p/6437178.html
Copyright © 2011-2022 走看看