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();

转载于:https://www.cnblogs.com/juggernautyy/p/6815290.html

java.util包详解(二)——Connection接口相关推荐

  1. java.util包详解

    介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结 ...

  2. java多线程学习-java.util.concurrent详解

    http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...

  3. JAVA.UTIL.ARRAYLIST 详解

    [size=medium][color=red][b]java.util.ArrayList[/b][/color][/size] [size=medium] 数组和数组列表之间有着重大的区别.数组是 ...

  4. Java源码详解二:HashMap源码分析--openjdk java 11源码

    文章目录 HashMap.java介绍 1.HashMap的get和put操作平均时间复杂度和最坏时间复杂度 2.为什么链表长度超过8才转换为红黑树 3.红黑树中的节点如何排序 本系列是Java详解, ...

  5. java stopself_Android Service详解(二)---StartService

    一丶概述 启动服务由另一个组件通过调用 startService() 启动,这会导致调用服务的 onStartCommand() 方法. 服务启动之后,其生命周期即独立于启动它的组件,并且可以在后台无 ...

  6. Java - concurrent包详解

    我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便.而当针对高质量Java ...

  7. java jar包详解_Jar打包用法详解

    这篇文章主要介绍了Jar打包用法,详解分析了jar打包命令的各种常见用法及参数含义,非常具有实用价值,需要的朋友可以参考下 本文较为详细的分析了Jar打包的用法.分享给大家供大家参考.具体分析如下: ...

  8. Java并发包-java.util.concurrent详解

    转载自https://blog.csdn.net/axi295309066/article/details/65665090 一.阻塞队列BlockingQueue BlockingQueue通常用于 ...

  9. java多线程学习-java.util.concurrent详解(一) Latch/Barrier

    2019独角兽企业重金招聘Python工程师标准>>> Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者 ...

  10. java.util.ConcurrentModificationException详解

    一.异常产生 当我们迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationExcept ...

最新文章

  1. 爱奇艺效果广告的个性化探索与实践
  2. jquery ajaxSubmit
  3. python接口自动化-参数化
  4. 设计模式:模板方法模式(Template Method)
  5. Android listview优化以及listview混合itemview
  6. 计算机基础:计算机网络-socket编程
  7. 第二十七篇、使用MVVM布局页面
  8. charles的一些使用
  9. 携程实时计算平台架构与实践丨DataPipeline
  10. 《剑指 Offer I》刷题笔记 51 ~ 61 题
  11. 如何用 Python 实现超级玛丽的界面和状态机?
  12. python工资一般多少西安-python西安薪资
  13. 贝叶斯方法学习笔记(一)
  14. 数据结构(王道计算机考研笔记)
  15. D3.js用动画渲染数据集的显示
  16. Kurento应用开发指南(以Kurento 5.0为模板) 之四:示例教程 一对一视频呼叫
  17. 舒城中学2021年高考成绩查询,舒城教育信息网——舒城县教育局关于对2019年荣获高考目标奖的学校和个人表彰的通报...
  18. js 判断是否为 Android IOS IPAD IPHONE 等移动设备访问
  19. python五角星编程代码绘制
  20. MySQL中查询和删除重复行

热门文章

  1. python全局变量被覆盖的问题
  2. 推荐一个国外的关于奥运报道的网站.
  3. which one clone BMW key programmer is the best
  4. SpringCloud实现集群和负载均衡
  5. 由一段JS代码引发的思考
  6. C语言控制台窗口图形界面编程(八):鼠标事件
  7. sicily 1345. 能量项链
  8. 设计模式系列- 迭代器模式
  9. Data Services Designer将数据从sql server抽取到hana
  10. VS2013用InstallShield生成安装包文件步骤