zoukankan      html  css  js  c++  java
  • core java collection温习

    接口

    队列接口可以在尾部添加, 在头部删除, 并返回元素个数,
    一个队列的最小接口可能类似如下

    public interface MyQueue<E> {
        void add(E element);
        E remove();
        int size();
    }
    

    队列实现可能有两个, 循环数组跟链表队列

    public class MyCircularArrayQueue<E> implements MyQueue<E> {
        private E[] elements;
        private int head;
        private int tail;
        MyCircularArrayQueue(int capacity) {...}
        @Override
        public void add(E e) {...}
        @Override
        public E remove() {...}
        @Override
        public int size() {...}
    }
    
    public class MyLinkedListQueue<E> implements MyQueue<E> {
        @Override
        public void add(E e) {...}
        @Override
        public E remove() {...}
        @Override
        public int size() {...}
        public MyLinkedListQueue() {...}
        private Link<E> head;
        private Link<E> tail;
        public class Link<E> {
            private E element;
            private Link<E> next;
        }
    }
    

    jdk类库中, 每种数据结构接口通常会对应一个Abstract类,
    这是类库设计者将一些通用的实现方法集成了, 方便框架设计

    集合类的基本接口是Collection

    • 扩展了Iterable接口,可以支持for each
    • Iterator, next() remove()方法都是操作的迭代器前面的那一个元素,
      这里与InputStream.read()方法有点类似
    • 迭代器访问顺序取决于集合顺序
    • Collection提供了一些需要实现的方法: iterator() add() addAll()
      remove() removeAll() contains() containsAll() retainAll()
      size() isEmpty() equals() clear() toArray()

    具体的集合

    • ArrayList
    • LinkedList
      ** 双向链接
    • ArrayDeque
    • HashSet
      ** LinkedHashSet
    • EnumSet
    • PriorityQueue
    • HashMap
      ** LinkedHashMap
    • TreeMap
    • EnumMap
    • WeakHashMap
    • IdentityHashMap
  • 相关阅读:
    gorm使用小结
    golang 输入输出
    nginx 命令和配置
    设计模式
    并发
    Java教程
    Spring实战
    第12章 高级数据结构及其实现
    第10章 算法设计技巧
    第9章 图论算法
  • 原文地址:https://www.cnblogs.com/simple-huang/p/8531418.html
Copyright © 2011-2022 走看看