java集合之Collection架构

Java集合之Collection架构

首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图:

  Collection是一个接口,它主要的两个分支是:List 和 Set。List和Set都是接口,它们继承于Collection。List是有序的队列,List中可以有重复的元素;而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类。 如ArrayList  LinkedList  Vector  Stack

  为了方便,我们抽象出了AbstractCollection抽象类,它实现了Collection中的绝大部分函数;这样,在Collection的实现类中,我们就可以通过继承AbstractCollection省去重复编码。

  AbstractList和AbstractSet都继承于AbstractCollection,具体的List实现类继承于AbstractList,而Set的实现类则继承于AbstractSet。

  另外,Collection中有一个iterator()函数,它的作用是返回一个Iterator接口。通常,我们通过Iterator迭代器来遍历集合。ListIterator是List接口所特有的,在List接口中,通过ListIterator()返回一个ListIterator对象。 接下来,我们看看各个接口和抽象类的介绍;然后,再对实现类进行详细的了解。

  接下来我们来看Collection接口:

  

package java.util;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

/**
*继承了Iterable接口,Iterable是一个迭代器接口,里面有返回迭代器的抽象方法
*/
public interface Collection<E> extends Iterable<E> {

    int size();//返回集合元素个数

    boolean isEmpty();//是否为空

    boolean contains(Object o);//集合中是否存在这个对象

    Iterator<E> iterator();//从Iterable中继承而来

    Object[] toArray();//将集合转换为object数组

    <T> T[] toArray(T[] a);//将集合转换特定类型的数组

    boolean add(E e);//添加

    boolean remove(Object o);//删除

    boolean containsAll(Collection<?> c);//本集合是否和参数集合相同

    boolean addAll(Collection<? extends E> c);//添加一个集合

    boolean removeAll(Collection<?> c);//删除本集合中所有参数集合中元素

    boolean retainAll(Collection<?> c);//retain保留

    void clear();//清空

    boolean equals(Object o);//Object中方法

    int hashCode();//hash函数

    default boolean removeIf(Predicate<? super E> filter) {//如果有就删除,接口默认实现
        Objects.requireNonNull(filter);
        boolean removed = false;
        final Iterator<E> each = iterator();
        while (each.hasNext()) {
            if (filter.test(each.next())) {
                each.remove();
                removed = true;
            }
        }
        return removed;
    }

    @Override
    default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }

    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }

    default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }
}

Collection接口

时间: 2024-10-12 06:45:14

java集合之Collection架构的相关文章

java集合之collection

Collection架构层次关系 1.Set (不能有重复元素) 1.1HashSet 1.1.1LinkedHashSet 2.List (必须保持元素特定的顺序) 2.1ArrayList 2.2Vector 2.2.1Stack 2.3LinkedList 3.Queue (保持一个队列(先进先出)的顺序) 3.1PriorityQueue 3.2Deque(接口 3.2.1 ArrayDeque 3.2.2 LinkedList 1.1HashSet 关系: java.util.Hash

java集合之整体架构

Java集合框架总结 Java集合是java 提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.* Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工具类(Iterator迭代器.Enumeration枚举类.Arrays和Collections). Java集合工具包框架图(如下): 大致说明: 看上面的框架图,先抓住它的主干,即Collection和Map. 1. Collection是一个接口,是高

Java集合之Collection接口

java的集合分为三大接口,分别是Collection,Map,Iterator,集合接口和类在java.util包中,此次主要介绍三大接口之一的Collection接口. 一些Collection允许有重复元素,而另一些则不允许,一些Collection是有序的,另一些则是无序的.Collection不提供接口的任何直接实现,它提供更加具体的子接口List和Set. 1.List接口 List是有序的集合,此接口的用户队列表的每一个元素的插入位置进行精确的控制,可以根据元素的整数索引访问元素,

java集合框架Collection

package collection; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.junit.Test; /** * <p>@ClassName: CollectionTest01</p> * <p>Description: java集合</p> */ public class CollectionTest01 {

Java——集合(Collection接口),迭代器,增强for循环,泛型

一.集合 Collection接口中的方法是集合中所有实现类必须拥有的方法. ArrayList implements List List extends Collection 1.基本使用 其他 import java.util.ArrayList; /* * 集合体系, * 目标 集合本身是一个存储的容器: * 必须使用集合存储对象 * 遍历集合,取出对象 * 集合自己的特性 */ public class ArrayListDemo { public static void main(St

java集合框架collection(3)

根据<java编程思想>里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口. 一.Collection Collection下面又分了三个子接口,分别是Set,List和Queue,他们的特性分别是: 1.Set:元素唯一,即Set中的元素永远不可能重复,跟数学中的集合概念是一样的.它的所有实现类都有相同的特征. 主要实现类有三个:HashSet,LinkedHashSet,TreeSet HashSet的底层实现是HashMap中的key,

《java基础知识》Java集合(Collection)

作为一个Developer,Java集合类是我们在工作中运用最多的.最频繁的类.相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求: Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象.在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大.在Java中,集合类通常存在于java.util包中. Java集合主要由2大体系构成,分别是Collection体系和Map体系,其中Collection和Map分别是2大体系中的顶层接口.

一大波Java来袭(六)——Java集合之Collection和Iterator接口

本文主要介绍Collection和Iterator接口. 一.Collection和Iterator接口 Collection接口是List.Set..Queue的父接口. Collection  c = new ArrayList(); 父类指向子类对象!优点:多态.动态链接.向上转型. 面向接口编程,被调用者对于调用者是完全透明的,可以随意替换子类,屏蔽了子类特有的东西. Demo:详细请参加:Java API文档 二.如何依次遍历集合中的元素? 普通情况下,当我们把一个对象"丢进"

java集合:Collection和Map的介绍

Collection集合://java.util.Collection List接口:    List集合包括List接口以及List接口的所有实现类.List集合中的元素允许重复,元素的顺序就是插入的顺序 List接口常用的实现类:  ArrayList 和 LinkedList ?  ArrayList类:实现了可变的数组允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问:缺点是向指定的索引位置插入对象或删除对象的速度较慢. ?  LinkedList类采用链表结构保