Java学习关于集合框架的基础接口--Collection接口

   集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中。集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术。Java集合框架标准化了程序处理对象组的方式。

  集合框架在设计上需要满足几个目标。首先,框架必须是高性能的。基本集合(动态数组、链表、树以及哈希表)的实现是高效率的。很少需要手动编写这些数据引擎中的某一个。其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性。再次,扩展或改造必须易于实现。为了满足这些目标,整个集合框架基于一套标准接口进行构造,提供了这些接口的一些可以直接使用的标准实现(如LinkedList、HashSet和TreeSet)。作为一种选择,也可以实现自己的集合。为了方便,提供各种特定目的的实现。最后,必须添加可以将标准数组集成到集合框架中的机制。

  算法是集合机制的另外一个重要组成部分。算法操作集合,并且被定义为Collections类中的静态方法。因此,所有集合都可以使用它们。

  与集合框架密切相关的另一个内容是 Iterator 接口。迭代器为访问集合中的元素提供了通用、标准的方式,每次访问一个元素。因为每个集合都提供了迭代器,所以可以通过Iterator定义的方法访问所有集合类的元素。

  Collection接口是构建集合框架的基础,因为定义集合的所有类都必须实现该接口,Collection是泛型接口

  public interface Collection<E> extends Iterable<E>其中,E指定了集合中存储的对象类型。Collection接口扩展了 Iterator 接口。
方法 说明
boolean  add(E e)

确保此集合包含指定的元素(可选操作)。

boolean addAll(Collection<? extends E> c)

将指定集合中的所有元素添加到此集合(可选操作)。

void  clear()

从此集合中删除所有元素(可选操作)。

boolean   contains(Object o)

如果此集合包含指定的元素,则返回 true

boolean   containsAll(Collection<?> c)

如果此集合包含指定 集合中的所有元素,则返回true。

boolean   equals(Object o)

将指定的对象与此集合进行比较以获得相等性。

int    hashCode()

返回此集合的哈希码值。

boolean    isEmpty()

如果此集合不包含元素,则返回 true 。 

boolean   remove(Object o)                                 

从该集合中删除指定元素的单个实例(如果存在)(可选操作)。移除返回true

boolean    removeAll(Collection<?> c)

删除指定集合中包含的所有此集合的元素(可选操作)。

default boolean removeIf(Predicate<? super E> filter)

删除满足给定谓词的此集合的所有元素。

boolean    retainAll(Collection<?> c)

仅保留此集合中包含在指定集合中的元素(可选操作)。

int     size()

返回此集合中的元素数。 

Object[]    toArray()                                            

返回一个包含此集合中所有元素的数组。

<T> T[]    toArray(T[] a)

返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。

方法详细信息

  • toArray

  Object[] toArray()

  返回一个包含此集合中所有元素的数组。 如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。返回的数组将是“安全的”,因为该集合不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组,即使这个集合是由数组支持的)。 因此,调用者可以自由地修改返回的数组。此方法充当基于阵列和基于集合的API之间的桥梁。结果一个包含此集合中所有元素的数组

  • clear

  void clear()

  从此集合中删除所有元素(可选操作)。 此方法返回后,集合将为空。异常  UnsupportedOperationException - 如果此 集合不支持clear操作

  • add

boolean add(E e)

  确保此集合包含指定的元素(可选操作)。 如果此集合由于调用而更改,则返回true 。 (如果此集合不允许重复,并且已包含指定的元素,则返回false。 )支持此操作的集合可能会限制可能添加到此集合的元素。 特别是一些集合拒绝添加null种元素,和其他人将强加可添加元素的类型限制。 收集类应在其文档中明确说明可能添加哪些元素的限制。

如果一个集合拒绝添加一个特定的元素,除了它已经包含该元素之外,它必须抛出异常(而不是返回false )。 这保留了一个集合在此调用返回后始终包含指定元素的不变量。

参数e - 要确保在此集合中的存在的元素
  结果   true如果此集合由于调用而更改
异常
UnsupportedOperationException - 如果此 集合不支持add操作
ClassCastException - 如果指定元素的类阻止将其添加到此集合
NullPointerException - 如果指定的元素为空,并且该集合不允许空元素
IllegalArgumentException - 如果元素的某些属性阻止其添加到此集合
IllegalStateException - 如果由于插入限制,此时无法添加该元素 
时间: 2024-10-20 22:05:28

Java学习关于集合框架的基础接口--Collection接口的相关文章

Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口

通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素.一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口.迭代器,使你能够通过循环来得到或删除集合的元素.ListIterator 继承了Iterator,以允许双向遍历列表和修改元素.Iterator和ListIterator都是泛型接口,它们的 声明: interface  Iterator

java学习日记 集合框架

集合框架 有两大接口  一个是 Collection (类集 )与Map (映射): collection 下有两大接口  一个是List (列表) 另一个是Set(集合) List (列表):ArrayList 基于数组实现的动态列表    动态数组 : LinkedList 基于链表实现的列表      双向循环链表 Vector 向量   ------>stack栈           与线程相关: Set (集合) :TreeSet       通过树实现的集合  有序集合 HashSe

Java学习之集合框架(1) &lt;好程序员特训营&gt;

<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流! 集合框架图: 1. Collection Collection定义了集合框架的共性功能. 1)添加  add(e);  addAll(collection); 2)删除  remove(e);  removeAll(collection);  clear();

Java学习 ( 集合框架)

集合框架 概述:数组长度是固定的,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,Java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随元素的增加而增加,随元素的减少而减少. 数组和集合的区别: 数组既可以存储基本数据类型,又可以存储引用数据类型.(基本数据类型存储的是值,引用数据类型存储的是地址值) 集合只能存储引用数据类型(对象) *集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象. 数组和集合的使用 : 如果元素个数是固定的推荐用数组. 如果元素个数

疯狂Java学习笔记(34)----------Iterator、Collection接口以及foreach

Iterator.Collection接口: 如下图:Iterator.Collection同在一个包中: 红字部分使我们经常遇到的,但是遇到又不知道怎么去理解,去应用它! Collection是最基本集合接口,它定义了一组允许重复的对象.Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下: 2. Set接口 Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复. 特征:无序且不可重复. 3.

Java学习之集合框架(2) &lt;好程序员特训营&gt;

<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流! 1.Set接口 Set集合不允许重复元素,是因为Set判断两个对象相同不是使用==运算符,而是根据equals方法.即两个对象用equals方法比较返回true,Set就不能接受两个对象. public class SetDemo { public static

Java学习之集合框架工具类

一.Collections Collections中的方法都是静态的 1 void sort(List<? extends Comparable<? super T>> list);//list集合元素必须具备比较性 2 void sort(List<T>,Comparator<? super T> c);//指定比较器,list集合元素可以不具备比较性 1 void swap(List<T>,int i,int j);//位置替换,相当于以下代

java学习总结-集合(collection)

本人正在学习java基础知识,非常感恩能够看到毕向东老师的java视频,他引领了我去思考问题,而不是生硬的去记一些知识点,下面是我对集合学习的总结和思考. 01-常用对象API(集合框架-概述).avi 问题1:什么是集合框架? 首先要理解集合这个词,它有另一个更加形象的名词:容器,所谓容器就是装载事物的器皿,而在java中最大的特征就是面向对象,所以可以推断出其实它就是用来装载对象的,便于我们去遍历和处理这些对象,关于框架的含义,其实就是它不是一个单独对象,而是有很多对象,并且相互存在区别和关

学java教程之集合框架

学编程吧学编程学IT教程之java教程集合框架发布了,欢迎通过xuebiancheng8.com来访问 java中的集合框架故名思议就是针对集合的框架.那什么是集合呢,前面已经学习过数组,没错,数组就是一组数据的集合,换句话说数组也是一种特殊的集合框架,可以完成集合的功能.那数组在使用的时候有没有不方便的地方呢,比方说数组有可能有满的时候,满了怎么办,我们是不是得自己写程序来更改数组的大小呢,而且还要把原来的数组赋值到新的数组的原来位置上,这样很明显数组用起来不是特别方便,很多功能得让我们自己去