码迷,mamicode.com
首页 > 编程语言 > 详细

java.util包详解(二)——Connection接口

时间:2017-05-06 01:11:15      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:empty   返回   value   数组   构造   简单   microsoft   ros   转化   

Connection接口介绍

  Connection接口是java集合的root接口,没有实现类,只有子接口和实现子接口的各种容器。主要用来表示java集合这一大的抽象概念。

  Connection接口要求,所有实现此接口的容器,必须提供至少两种构造方法:无参构造方法、参数为Connection类的构造方法。后者需要创建一个具有和参数包含元素相同的新集合,以此来进行集合的复制。java中所有的api均遵守了此规则。

  如果集合不支持某种修改方式,那么进行这种修改操作的方法必须抛出UnsupportedOperationException异常。但是,如果这次修改并没有实际效果(比如往一个集合里新增一个空集合),集合可能不会抛出此异常。

  对于某些集合,他们对自己能容纳的元素有限制,尝试进行添加操作时可能会抛出unchecked Exception,如NullPointerException或者ClassCastException。而在查询时,集合可能会抛出异常,也可能直接返回一个false表示失败,这取决于集合自身的实现。

  对于集合中元素的比较,集合可能使用equals方法,也有可能使用hashCode方法,这取决于集合的实现。不能简单的认为集合一定会调用equals方法,集合可能会使用任意一种Object提供的合适方法进行元素的比较。

  另外,当集合包含的元素中有自身时,调用集合的clone()、hashCode()、equals()、toString()方法可能会失败并抛出异常,因为这导致了递归调用。集合可以自己处理这种异常,但是目前实现的集合都没有进行处理。

Connection包含的方法

/**
*  判断类方法
**/
int size();//返回集合包含的元素,若大于Integer.MAX_VALUE,返回Integer.MAX_VALUE
boolean isEmpty();//集合为空时返回true
boolean contains(Object o);//集合包含o时返回true,可能会抛出ClassCastException和NullPointerException异常
boolean containsAll(Collection<?> c);
/**
* 转化类方法
**/
Iterator<E> iterator();//返回集合对应的迭代器(这是由于Connection继承了Iterable接口)
Object[] toArray();//将集合转化为数组
<T> T[] toArray(T[] a);//将集合转化为数组,并保持输入的类型
/**
* 操作类方法
**/
boolean add(E e);
boolean addAll(Collection<? extends E> c);
boolean remove(Object o);
boolean removeAll(Collection<?> c);
boolean removeIf(Predicate<? super E> filter);//此方法有默认实现
boolean retainAll(Collection<?> c);//仅保留参数中的元素
void clear();

 

java.util包详解(二)——Connection接口

标签:empty   返回   value   数组   构造   简单   microsoft   ros   转化   

原文地址:http://www.cnblogs.com/juggernautyy/p/6815290.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!