zoukankan      html  css  js  c++  java
  • Java集合一

    java的集合类主要由两个接口派生而出:Collection && Map 这两个接口是集合框架的根接口

        Collection----直接派生:Set(无序集合,元素不可重复) List(有序集合,元素可以重复) Queue队列

        

        Map实现类用于保存具有映射关系的数据(每项数据都是key-value对)key用于标识集合里的每项数据

        可以把java集合分为3大类:Set集合类似于一个罐子,把对象添加到Set集合时,Set集合无法记住元素添加的顺序

                     List类似数组,长度可变,可以元素重复,有序集合

                    Map也类似罐子,只是每个数据都是由key-value组成

    Collection接口提供的方法:

        boolean add(Object o):向集合里添加一个元素

        boolean addAll(Collection c):将集合c里的元素添加的指定集合中

        void clear():清除集合里所有的元素,将集合长度变为0

        .。。。。。参考Api文档

    使用Lambda表达式遍历集合

          Iterable接口新增了forEach(Consumer action)默认方法,这个接口是Collection接口的父接口,Collection集合可以直接调用该方法(主要用于遍历,即迭代访问)

        通过iterator()来获得集合对应迭代器

          提供的方法:boolean hasNext():如果集合元素没遍历完则返回true

                Object next():返回集合里的下一个元素

                void remove():删除集合里上一次next()元素返回的元素

                void forEachRemaining(Consumer action) lambda遍历集合

          当使用迭代器访问集合元素时Collection集合的元素不能被改变,否则会出问题

          迭代元素的值对集合本身没有任何影响

    使用Lambda表达是遍历Iterator:就是用forEachRemaining(Consumer action)

    使用foreach循环遍历集合元素

    Java8新增一个removeIf(Predicate filter), 该方法批量删除符合Filter元素的,Predicate(谓词)对象作为参数,也是函数式接口,可用Lambda表达式作为参数

        Predicate的test()方法判断该对象是否满足Predicate指定的条件(统计指定条件的数量有多少)

    Java8新增Stream操作集合:调用builder()方法然后调用add() 再调用build()获得对应Stream()

      流的方法有中间方法,和末端方法,末端方法执行后就关闭流,不可再用  

      Collection集合的stream()方法可返回该集合的Stream,接下来就是痛过Stream操作集合

    Set集合:没有顺序,不允许包含同样的元素

      HashSet:不是同步的,多个线程访问时要用代码保证同步

          集合值可以为null

          按hash算法来存储集合中的元素

          尽量保证对象equals()方法返回true时,hashCode()的方法返回值也相等

          两个以上元素具有相同的hashCode()值时会导致性能下降

          hashCode()的基本规则:通过对象内部有意义的实例变量的一系列运算获得

      LinkedHashSet:为HashSet的子类,性能略低于hashset,有顺序,以链表来维护内部顺序

      

      TreeSet:是SortSet接口的实现类,可以确保集合处于排序状态

      

           

  • 相关阅读:
    shared pointer
    realsense数据分析
    cmake log
    Qt自定义类添加qvector报错
    Java csv
    opencv C++ mask_rcnn
    realsense data
    Test
    ubuntu18 bluebooth
    LSTM_Model
  • 原文地址:https://www.cnblogs.com/xiaochenztx/p/8566108.html
Copyright © 2011-2022 走看看