• Java集合框架--Collection


    Java Collection class

    Collection是最基本的集合接口,一个Collection代表一组Object。Java SDK不提供直接继承自Collection的类,提供的类都是继承自Collection的子接口(如List和Set)

    语法

    public interface Collection<E> extends Iterable<E>{}
    

    Collection是一个接口,是高度抽象出来的集合,他包含了集合的基本操作:添加、删除、查找、清空、遍历、大小等。

    iterator接口

    无论Collection的实际类型是什么,都支持一个iterator()方法,迭代每一个元素。

    Iterator方法

    boolean hasNext()                 //如果仍有元素可以迭代,则返回true;
    
    E next()                          //返回迭代的下一个元素;
    
    void remove()                     //从迭代器指向的集合中移除迭代器返回的最后一个元素。
    

    Iterator实例

    Iterator it = collection.iterator();          //获得一个迭代子
    while( it.hasNext() ) {
            Object obj = it.next();               //得到下一个元素
    }
    

    继承体系

    Collection
        |—List 有序可重复,可有null值
            |——ArrayList 非线程安全,底层为数组,查询快,增删慢,效率高
            |——LinkedList 非线程安全,底层为链表,查询慢,增删快,效率高
            |——Vector 线程安全,底层为数组,查询快,增删慢,效率低。
        |—Set 元素不可重复的collection
            |——HashSet 底层由HashMap实现,通过对象的hashCode方法与equals方法来确保插入元素的唯一性,无序存储(存储顺序和取出顺序不一致)
                |——LinkedHashSet 底层由哈希表和链表组成。哈希表保证元素的唯一性,链表保证元素的有序性(存储和取出顺序一致)
        |——TreeSet 基于TreeMap的NavigableSet实现。使用元素的自然顺序对元素进行排序,根据创建set时提供的Comparator进行排序,元素唯一
    Collection接口继承关系

    总结

    1. List是一个有序的队列,每一个元素都有它的索引,第一个元素的索引值是0。List的实现类有LinkedList、ArrayList、Vector和Stack;
    2. Vector类似于ArrayList,但Vector是线程安全的;
    3. Stack继承自Vector,实现一个后进先出的堆栈;
    4. set是一个不允许有重复元素的集合;
    5. 尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。
  • 相关阅读:
    ffmpeg学习笔记-ffmpeg在VS下的运用
    ffmpeg学习笔记-初识ffmpeg
    ffmpeg学习笔记-初识ffmpeg
    NDK学习笔记-使用现有so动态库
    新闻cms管理系统(一) ---- thinkphp框架准备
    新闻cms管理系统功能介绍
    ubuntu中phpstorm和sublime快速启动
    ubuntu使用----高效快捷键
    windows下使用docker(一)—— 安装
    windows下更新npm的命令实现
  • 原文地址:https://www.cnblogs.com/willwuss/p/12238938.html
Copyright © 2020-2023  润新知