zoukankan      html  css  js  c++  java
  • 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时,客户端代码不用改变。这就是针对抽象编程。
  • 相关阅读:
    土豆网自动播放代码
    js倒计时小插件(兼容大部分浏览器)
    带按钮的网页播放器代码(附文件)
    列出目录下所有文件
    day19 进度条 & 随机验证码
    day18 json与pickle
    day14.2_三元表达式、列表生成式
    day14.1_生成器
    day13_迭代器
    day12.2_完善装饰器
  • 原文地址:https://www.cnblogs.com/willwuss/p/12238938.html
Copyright © 2011-2022 走看看