java.util包详解(二)——Connection接口
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接口相关推荐
- java.util包详解
介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结 ...
- java多线程学习-java.util.concurrent详解
http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...
- JAVA.UTIL.ARRAYLIST 详解
[size=medium][color=red][b]java.util.ArrayList[/b][/color][/size] [size=medium] 数组和数组列表之间有着重大的区别.数组是 ...
- Java源码详解二:HashMap源码分析--openjdk java 11源码
文章目录 HashMap.java介绍 1.HashMap的get和put操作平均时间复杂度和最坏时间复杂度 2.为什么链表长度超过8才转换为红黑树 3.红黑树中的节点如何排序 本系列是Java详解, ...
- java stopself_Android Service详解(二)---StartService
一丶概述 启动服务由另一个组件通过调用 startService() 启动,这会导致调用服务的 onStartCommand() 方法. 服务启动之后,其生命周期即独立于启动它的组件,并且可以在后台无 ...
- Java - concurrent包详解
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便.而当针对高质量Java ...
- java jar包详解_Jar打包用法详解
这篇文章主要介绍了Jar打包用法,详解分析了jar打包命令的各种常见用法及参数含义,非常具有实用价值,需要的朋友可以参考下 本文较为详细的分析了Jar打包的用法.分享给大家供大家参考.具体分析如下: ...
- Java并发包-java.util.concurrent详解
转载自https://blog.csdn.net/axi295309066/article/details/65665090 一.阻塞队列BlockingQueue BlockingQueue通常用于 ...
- java多线程学习-java.util.concurrent详解(一) Latch/Barrier
2019独角兽企业重金招聘Python工程师标准>>> Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者 ...
- java.util.ConcurrentModificationException详解
一.异常产生 当我们迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationExcept ...
最新文章
- 爱奇艺效果广告的个性化探索与实践
- jquery ajaxSubmit
- python接口自动化-参数化
- 设计模式:模板方法模式(Template Method)
- Android listview优化以及listview混合itemview
- 计算机基础:计算机网络-socket编程
- 第二十七篇、使用MVVM布局页面
- charles的一些使用
- 携程实时计算平台架构与实践丨DataPipeline
- 《剑指 Offer I》刷题笔记 51 ~ 61 题
- 如何用 Python 实现超级玛丽的界面和状态机?
- python工资一般多少西安-python西安薪资
- 贝叶斯方法学习笔记(一)
- 数据结构(王道计算机考研笔记)
- D3.js用动画渲染数据集的显示
- Kurento应用开发指南(以Kurento 5.0为模板) 之四:示例教程 一对一视频呼叫
- 舒城中学2021年高考成绩查询,舒城教育信息网——舒城县教育局关于对2019年荣获高考目标奖的学校和个人表彰的通报...
- js 判断是否为 Android IOS IPAD IPHONE 等移动设备访问
- python五角星编程代码绘制
- MySQL中查询和删除重复行