zoukankan      html  css  js  c++  java
  • Java集合总结系列2:Collection接口

    Collection 接口是 Java 集合类的一个根接口,Java 在 Collection 接口中定义了许多通用的数据操作类方法以及判断类方法。

    通过查看 API 文档或源码的方式,我们可以了解到 Collection 接口中的方法大致分为两类:操作类方法和判断类方法。

    操作类方法

    • boolean add(E e);
    • boolean addAll(Collection<? extends E> c);
    • boolean remove(Object o);
    • boolean removeAll(Collection<?> c);
    • void clear();
    • boolean retainAll(Collection<?> c);    仅仅保存集合c中的元素
    • Iterator<E> iterator();

    判断类方法

    • boolean contains(Object o);
    • boolean containsAll(Collection<?> c);
    • boolean isEmpty();
    • int size();

    Collection 接口中定义的这些方法都是 List、Set、Queue 这3种数据结构所共有的一些行为,因此适合作为父级接口的方法。

    查看 Java 源码我们可以看到 Collection 接口还继承了 Iterable<E> 接口:

    public interface Collection<E> extends Iterable<E>
    

    而 Iterable<E> 接口定义如下:

    /**
     * Implementing this interface allows an object to be the target of
     * the "foreach" statement.
     *
     * @param <T> the type of elements returned by the iterator
     *
     * @since 1.5
     */
    public interface Iterable<T> {
    
        /**
         * Returns an iterator over a set of elements of type T.
         *
         * @return an Iterator.
         */
        Iterator<T> iterator();
    }
    

    也就是说如果一个对象实现了这个接口,那么这个对象就可以用 foreach 循环读取集合元素。

    可以看到在 Iterator<T> 中有一个 Iterator<T> 接口,其定义如下:

    public interface Iterator<E> {
    
        boolean hasNext();
    
        E next();
    
        void remove();
    }
    

    Iterator<T> 接口定义了进行 foreach 遍历时的接口,接口逻辑需要在具体的集合类中实现。

  • 相关阅读:
    Restful api 返回值重复的问题
    fastDFS遇到的并发问题recv cmd: 0 is not correct, expect cmd: 100
    忽略警告@SuppressWarnings的用法
    Mysql 一些命令记录
    python 操作excel实现替换特定内容
    python 提取目录中特定类型的文件
    python使用tkinter无法获取输入框的值
    python使用tkinter无法给顶层窗体的输入框设定默认值
    游戏基础知识第一弹
    python 3.7.4 安装 opencv
  • 原文地址:https://www.cnblogs.com/chanshuyi/p/5457684.html
Copyright © 2011-2022 走看看