美文网首页
Java Collection

Java Collection

作者: Loistein | 来源:发表于2019-06-27 11:55 被阅读0次

    Collection 每个槽只保存一个元素
    ArrayList 可变长数组 add() get(下标) size()方法
    通过泛型,可以在编译期防止将错误类型的对象方在容器中 。容器中不能使用基本数据类型,如int,可以使用其对应的对象,如Integer

    Arrays.toString()打印数组
    Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),转换为List,但是底层表示还是数组,不能调整尺寸
    Collections.addAll()方法接受一个Collection对象、数组、用逗号分隔的列表
    Collection.addAll() 方法只能接受另一个collection对象作为参数,因此它不如上两个那样灵活

    Collection

    • ArrayList 数组
    • LinkedList 提供了优化顺序访问,在插入和移除上效率更高,但是随机访问性能较差
    • HashSet 无重复数据,最快获取元素的方式,不保存顺序
    • TreeSet 无重复数据 按照比较结果的升序保存
    • LinkedHashSet 无重复数据 按照被添加的顺序

    Map

    • HashMap 不保留顺序,查找最快
    • TreeMap 按照升序
    • LinkedHashMap 按照插入顺序 同时还保留了HashMap的查询速度 LRU算法
      ContainsKey(), ContainsValue(),get(key), keyset()返回所有键值构成的set, values()返回值的Collection

    List方法

    • Contains() remove() indexOf()
    • subList(1,4) 子集
    • retainAll() 交集
    • removeAll()删除全部
    • isEmpty()是否为空
    • clear()删除所有元素
    • toArray()将任意Collection转换成数组

    Iterator

    • iterator()方法,要求容器返回一个Iterator, Interator准备返回序列第1个因素
    • 使用next()返回下一个元素
    • 使用hasNext() 检查序列中是否还有元素
    • 使用remove()方法将迭代器新返回的元素删除

    Iterable接口

    • 任何类实现了Iterable类,都可以用于foreach语句中
    • Foreach语句可以用于数组和其他任何Iterable,但并不意味着数组也是一个Iterable,数组必须手工执行转换

    LinkedList 双向链表

    • getFirst、Element() 返回列表头元素,如果为空,返回NoSuchElementException, peek() 返回null
    • removeFirst()、remove() 移除并返回头,为空时返回NoSuchElementException, poll()空时返回null
    • addFirst 插入队头
    • offer()、add()、addLast() 插入列表尾端
    • removeLast()移除并返回列表的最后一个元素

    Queue

    • Offer()将元素插入队尾
    • Peek/element()返回队头
    • Poll/remove()移除并返回队头,poll()在没有元素的情况下返回null

    PriorityQueue 加上优先级

    可加上comparator来选择优先方式,如Collections.reverseOrder()

    Stack 装弹簧的存储器中放入自助托盘,最后装入的托盘总是最先弹出

    • Peek()返回栈顶元素
    • Pop()返回并移除栈顶元素
    • Push()入栈

    Set

    • HashSet 散列
    • TeeeSet 红黑树 在构造器中传入String.CASE_INSENTIVE_ORDER 排序时忽略大小写
    • LinkedHashList 也是使用了散列,使用链表来维护了元素的插入顺序

    相关文章

      网友评论

          本文标题:Java Collection

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