从头认识java-15.2 Collection的经常用法(2)-注意点
上一章节我们讲述了Collection的经常用法。还有之前的章节我们介绍了Collection的addAll方法,这一章节我们介绍一下它的注意点。
注意点就是,在经常用法里面,基本都是可选操作。
什么是可选操作?
可惜操作的方法不是为全部的实现而设定的。而仅仅是为某一类的实现而设定的。
比如:
package com.ray.ch15; import java.util.Arrays;
import java.util.Collection;
import java.util.List; public class Test {
public static void test(List<String> list, String msg) {
System.out.println("---------" + msg + "--------");
List<String> subList = list.subList(1, 4);
Collection<String> collection = list;
try {
collection.retainAll(subList);
} catch (Exception e) {
System.out.println("retainAll:" + e);
}
} public static void main(String[] args) {
List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6");
test(list, "start1");
}
}
输出:
---------start1--------
retainAll:java.lang.UnsupportedOperationException
为什么上面会抛异常呢?
由于Arrays.asList这种方法最底层的数据结构是一个数组,数组在java里面是不可改动的。当retainAll这种方法想改动数组里面的数据结构时,它是不被同意的。
假设我们上面输出多一点异常信息,我们将会定位到AbstractList的remove方法。当调用它的时候。将会抛不被支持的异常。
public E remove(int index) {
throw new UnsupportedOperationException();
}
总结:这一章节主要介绍了Collection的经常用法的可选操作。
这一章节就到这里,谢谢。
-----------------------------------
从头认识java-15.2 Collection的经常用法(2)-注意点的更多相关文章
- 【转】java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
原文网址:http://www.360doc.com/content/15/0427/22/1709014_466468021.shtml java 容器类使用 Collection,Map,Hash ...
- Java集合框架Collection
转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接 ...
- java中集合Collection转list对象
参考:java中集合Collection转list对象 首先我的需求是获取到购物车列表,购物车列表是一个Map对象,构造方法获取购物项,这里购物项是Collection对象 // 购物项集合,K商品I ...
- Java基础学习-Collection体系结构和迭代测试
package Collection; import java.util.ArrayList; import java.util.Collection; import java.util.Iterat ...
- Java基础之Collection与Collections浅析
Java基础之Collection与Collections浅析 一.前言: 位于Java.util包下的Collection与Collections都是Java中重要的工具类,它们都是Java集合框架 ...
- java Iterator Iterable Collection AbstractCollection Map关系
java.lang Interface Iterable<T> 实现该接口就可以使用for-each循环. java.util Interface Iterator<E> ...
- JDK 15 JAVA 15的新特性展望
目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: T ...
- Java 15 正式发布, 14 个新特性,刷新你的认知!!
JDK 15 2020/09/15 如期而至! 这个时间牛逼啊,和苹果发布会同天? OracleJDK 15 发布地址: https://www.oracle.com/java/technologie ...
- linux(centos8):安装java jdk 15 (java 15)
一,下载jdk15 官方网站: https://www.oracle.com/java/ 下载页面: https://www.oracle.com/cn/java/technologies/javas ...
随机推荐
- 大话设计模式--DI(依赖注入)
1.背景 想象一个场景:有个功能通过某个参数决定了路由到不同的方法上或者几个方法模块可以自由搭配,咋办?一般人会对每个方法写一个helper(比如SendMessageForEmail.SendMes ...
- Scala-基础-数据类型
import junit.framework.TestCase import org.junit.Test import scala.runtime.RichByte //数据类型 class Dem ...
- Android基础TOP3_1:纵横屏切换
在Res下建立layout-port文件夹 为竖屏时加载的界面: 建立layout-land 文件夹 为横屏加载的界面
- JS——dom
节点的获取 <script> var div = document.getElementById("box");//返回指定标签 var div = document. ...
- hdu,1028,整数拆分的理解
#include"iostream"using namespace std;int main() { int n,i,j,k; int c[122],temp[122]; //c[ ...
- RocketMQ学习笔记(4)----RocketMQ搭建双Master集群
前面已经学习了RockeMQ的四种集群方式,接下来就来搭建一个双Master(2m)的集群环境. 1. 双Master服务器环境 序号 ip 用户名 密码 角色 模式 (1) 47.105.145.1 ...
- iptables详解(4):iptables匹配条件总结之一
所属分类:IPtables Linux基础 在本博客中,从理论到实践,系统的介绍了iptables,如果你想要从头开始了解iptables,可以查看iptables文章列表,直达链接如下 iptab ...
- wget扒网站
wget神奇操作 整站复制 只限静态网页 wget -P 指定下载路径 -p 获取显示HTML页面所需的所有图像 -k 使链接指向本地文件 -H 递归时转到外部主机. wget --mirro ...
- ubuntu18.04安装chrome浏览器
前几天把系统弄崩溃了,弄了好久也没弄好,索性直接装18.04,下面是安装chrom浏览器的步骤,网络上照着16.04安装的,应该是一样的 启动终端. 输入以下命令: sudo wget http:// ...
- STM32串口IAP实验笔记
STM32的IAP功能确实方便,以前对此如何实现有所了解,但是一直没去测试,这两天来练了下,可谓困难重重,搞了两天问题也一一解决,下面做些简要的笔记 IAP就是在线应用编程,方便程序升级,可以不用打开 ...