1.介绍

   collection<E>是java中容器的最主要的接口,该接口继承于Iterable<E>,使得java中所有实现Collection<E>的容器类,都能有统一的访问接口。Collection仅仅定义一组保有元素的最基本的操作集合。不包含获取元素和随机访问元素的操作集合,也不包含替换、插入等接口,就连remove、removeAll、retainAll方法都是可选的方法。但是作为持有元素的容器,这体现了接口最小职责的原则,使得大多数具体类型的容器能实现特定操作集合的同时,又能保证容器的通用性。

2.子接口

   主要有List,Set,Queue,Deque

3.主要方法

  1. add(E newElement) : boolean,在容器末尾添加元素
  2. addAll(Colletion<? extends E> collection) : boolean, 将指定容器中的元素添加至该容器的末尾
  3. size() : int , 返回该容器里元素的个数
  4. isEmpty() : boolean, 判断容器是否为空
  5. iterator() : Iterator<E>, 继承子Iterable<E>,返回该容器上的迭代器,每次调用都从首元素开始
  6. clear() : void, 清空该容器
  7. contains(Object o) : boolean,判断该容器中是否包含指定元素,如果o=null,则删除空引用的元素;如果不为空,则调用o.equals()方法
  8. containAll(Collection<?> collection) : boolean,判断该容器中是否包含指定集合中的所有元素
  9. toArray() : Object[],返回一个新的数组,该数组包含原容器的所有元素,并保证原来的顺序,对返回的数组的任何修改不影响原容器
  10. toArray(T[] a) : T[],返回指定类型的数组,如果指定的类型不是该容器元素类型的父类型,则抛出ArrayStoreException
  11. equals(Object  o) : boolean,判断该容器对象是否等于指定的对象o
  12. hashCode() : int,返回该容器的哈希值
  13. retainAll(Collection<?> collection) : boolean,若该容器中的元素同时存在于指定的容器collection中,则保留该元素,否则就删除该元素;此方法为可选方法,在某些不允许修改的容器中,该方法抛出UnsuportedOperationException,如Arrays.asList(T[] array)返回的ArrayList类型
  14. remove(Object o) : boolean, 删除该容器中指定元素,此方法为可选方法,在某些不允许修改的容器中,该方法抛出UnsuportedOperationException;此方法为可选方法,在某些不允许修改的容器中,该方法抛出UnsuportedOperationException,如Arrays.asList(T[] array)返回的ArrayList类型
  15. removeAll(Collection<?> collection) : boolean,删除该容器中所有包含于指定容器中的元素;此方法为可选方法,在某些不允许修改的容器中,该方法抛出UnsuportedOperationException,如Arrays.asList(T[] array)返回的ArrayList类型

4.defaut方法(自jdk1.8起)

  1. removeIf(Predicate<? super E filter), 通过指定的过滤器来删除元素
  2. spliterator() : Spliterator<E> ,主要支持java8中的流式操作,如排序,过滤等,提供类似jquery的语法
  3. stream() : stream,获取该集合的非并行的流
  4. parallelStream() : stream,获取该集合的并行的流

5.总结

   Collection是除Map的最广泛容器类的父接口,它保留了一组持有元素最通用的操作集合。所有实现Iterable<E>的类型都能用于foreach循环,因此所有的Collection都能用于foreach循环,实现方便的顺序访问,而该顺序由iterator()返回的Iterator<E>决定。

java容器-Collection的更多相关文章

  1. java容器——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  2. Java容器---Collection接口中的共有方法

    1.Collection 接口 (1)Collection的超级接口是Iterable (2)Collection常用的子对象有:Map.List.Set.Queue. 右图中实现黑框的ArrayLi ...

  3. java容器collection的一些简单特点

    1.List ArrayList 可随机访问元素,但中间插入和一处元素较慢 LinkedList 在中间进行的插入和删除操作代价较小,随机访问比ArrayList较慢 特性集比ArrayList大 2 ...

  4. 【Java心得总结六】Java容器中——Collection

    在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...

  5. Java 容器:Collection 初探之 List

    1 ///: JavaBasic//com.cnblogs.pattywgm.day1//CollectionTest.java 2 3 package com.cnblogs.pattywgm.da ...

  6. java中Collection容器

    1.容器(Collection)也称为集合, 在java中就是指对象的集合. 容器里存放的都只能是对象. 实际上是存放对象的指针(头部地址): 这里对于八种基本数据类型,在集合中实际存的是对应的包装类 ...

  7. 理解java容器:iterator与collection,容器的起源

    关于容器 iterator与collection:容器的起源 iterator的简要介绍 iterable<T> iterator<T> 关于remove方法 Collecti ...

  8. java容器的理解(collection)

    容器类(Conllection)对于一个开发者来说是最强大的工具之一,可以大幅提高编程能力.容器是一个将多个元素组合到一个单元的对象,是代表一组对象的对象,容器中的对象成为它的元素. 容器适用于处理各 ...

  9. java容器一:Collection概述

    Collection概览 java容器有两类,第一类是Collection,存储的是对象的集合:第二类是Map,存储的是键值对(两个对象以及它们之间的对应关系)的集合 Collection接口下面有三 ...

随机推荐

  1. Python中str类型的字符串写入二进制文件时报TypeError错的处理方式

    在用二进制模式打开文件情况下,写入一个str对象时报错:TypeError: a bytes-like object is required, not 'str' 出现该问题是因为Python严格区分 ...

  2. PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性不起作用的问题解决办法

    在<PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性>中介绍layout的layoutSizeConstraint属性后,反复测试 ...

  3. Flask学习 url和视图

    因为扫描器的准备使用Flask框架,所以开始恶补Flask和前后端的知识 Flask是一个使用Python编写的轻量级Web应用框架,作者是 Armin Ronacher(他也是 Werkzeug 及 ...

  4. Samba服务器搭建,匿名访问,用户密码访问

    环境 #服务端:centos7 客户端:centos7,windows10 配置yum源,使用光盘镜像安装Samba服务 #挂载光盘:mount  /dev/sr0  /mnt/cdrom #安装sa ...

  5. 题解-MtOI2019 幽灵乐团

    题面 MtOI2019 幽灵乐团 给定 \(p\),\(Cnt\) 组测试数据,每次给 \(a,b,c\),求 \[\prod_{i=1}^a\prod_{j=1}^b\prod_{k=1}^c\le ...

  6. mac系统下用ssh方式连接git仓库

    1.应用程序-终端,键入命令  ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  ,后面是你的邮箱地址.一直回车,生成密钥. 2.键入  open ~ ...

  7. 我叫Mongo,干了「索引探索篇」提升我的效率,值得您拥有

    这是mongo第四篇"索引探索",后续会连续更新4篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流.通过 ...

  8. css 16-浏览器的兼容性问题

    16-浏览器的兼容性问题 我们在div里放一个img,发现: 在html和html5中,div的长宽是不同的,后者的高度要超过几个像素. 比如说,下面这个是html的. <!DOCTYPE ht ...

  9. css进阶 03-网页设计和开发中,关于字体的常识

    03-网页设计和开发中,关于字体的常识 #前言 我周围的码农当中,有很多是技术大神,却常常被字体这种简单的东西所困扰. 这篇文章,我们来讲一讲关于字体的常识.这些常识所涉及到的问题,有很强的可操作性, ...

  10. [OI笔记]NOIP2017前(退役前)模拟赛的总结

    好久没写blog了- 在noip2017前的最后几天,也就是在我可能将要AFO的前几天写点东西吧- 记录这最后几个月打的那些大大小小的模拟赛 一些比赛由于不允许公开所以就没有贴链接跟题面了- 2017 ...