Java中关于Arrays.asList()的操作
我们可以通过Arrays.asList() 产生一个List,但是要记住,我们通过Arrays.asList产生的list是基于一个固定大小的数组的, 仅支持那些不会改变数组大小的操作。所以我们在使用时要时刻记住,以免出现不可预料的错误。
如果我们想要得到一个可以操作的List可以通过将Arrays.asList获得的list作为构造器的参数传进ArrayList中,或者通过使用addAll方法添加进去,即可。
示例:
import java.util.AbstractList;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set; public class Test{ public static void test(String msg, List<String> list){
Collection<String> c = list;
Collection<String> sublist = list.subList(1, 3);
Collection<String> c2 = new ArrayList<String>(sublist);
System.out.println("------" + msg + "--------");
try{
c.removeAll(c2);
}catch(Exception e) {
System.out.println("removeAll : " + e);
}
try{
c.retainAll(c2);
}catch(Exception e) {
System.out.println("retainAll : " + e);
}
try{
c.clear();
}catch(Exception e) {
System.out.println("clear : " + e);
}
try{
c.add("XXX");
}catch(Exception e) {
System.out.println("add : " + e);
}
try{
c.addAll(c2);
}catch(Exception e) {
System.out.println("addAll : " + e);
}
try{
c.remove("X");
}catch(Exception e) {
System.out.println("remove : " + e);
} try{
list.set(0, "XYZ");
}catch(Exception e) {
System.out.println("list.set : " + e);
}
}
public static void main(String[] args) {
List<String> list = Arrays.asList("A B C D E F G H B I HIK HKI GG".split(" "));
test("Modifiable1", new ArrayList<String>(list)); List<String> list2 = new ArrayList<String>();
list2.addAll(list);
test("Modifiable2", list2); Collections.addAll(list2, "A B C D E F G H B I HIK HKI GG".split(" "));
test("Modifiable3", list2); test("Arrays.asList", list);
test("unmodifiableList()", Collections.unmodifiableList(list));
} }
输出:
------Modifiable1--------
------Modifiable2--------
------Modifiable3--------
------Arrays.asList--------
removeAll : java.lang.UnsupportedOperationException
retainAll : java.lang.UnsupportedOperationException
clear : java.lang.UnsupportedOperationException
add : java.lang.UnsupportedOperationException
addAll : java.lang.UnsupportedOperationException
------unmodifiableList()--------
removeAll : java.lang.UnsupportedOperationException
retainAll : java.lang.UnsupportedOperationException
clear : java.lang.UnsupportedOperationException
add : java.lang.UnsupportedOperationException
addAll : java.lang.UnsupportedOperationException
remove : java.lang.UnsupportedOperationException
list.set : java.lang.UnsupportedOperationException
Java中关于Arrays.asList()的操作的更多相关文章
- Java中关于Arrays.asList方法的深入学习与理解
Java的标准库中在java.util包下提供了很多实用的工具类,如:Arrays,Collections等工具类都提供了一些比较实用的方法.在实际的开发使用中,我们经常需要使用这样的需求:将一个数组 ...
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...
- 第69节:Java中数据库的多表操作
第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...
- Java - 一道关于Arrays.asList的题目
题目 有这样一道有趣的题目: final int[] test = new int[]{1,2,3,4}; final Integer[] test2 = new Integer[]{1,2,3,4} ...
- 为什么Java里的Arrays.asList不能用add和remove方法?
在平时的开发过程中,我们知道能够将一个Array的对象转化为List.这种操作,我们仅仅要採用Arrays.asList这种方法即可了.笔者前段时间一直用这种方法,有一天,我发现通过Arrays.as ...
- JAVA中数组Arrays类的常见用法
import java.util.Arrays; int[] array1={7,8,3,2,12,6,5,4}; 1. //克隆clone int[] array2=array1.clone() ...
- java中的Arrays这个工具类你真的会用吗
Java源码系列三-工具类Arrays 今天分享java的源码的第三弹,Arrays这个工具类的源码.因为近期在复习数据结构,了解到Arrays里面的排序算法和二分查找等的实现,收益匪浅,决定研读 ...
- 【Java 基础】Arrays.asList、ArrayList的subList注意事项
1. 使用Arrays.asList的注意事项 1.1 可能会踩的坑 先来看下Arrays.asList的使用: List<Integer> statusList = Arrays.asL ...
- java中文件的I/O操作
java中文件的读写操作 (一) (1)java中文件的字节转成字符读操作 FileInputStream fStream = new FileInputStream("test.txt&q ...
随机推荐
- Java-单向链表算法
/** * 数据结构之链表(单向链表) * @author Administrator * */ public class LinkNodeTest { public static void main ...
- .NET MVC model数据验证
MVC提供了很方便的数据验证,只需要在model里加入相关的正则等,那么就会在前台里生成相关的验证脚本.需要引用两个js文件: jquery.validate.min.js jquery.valida ...
- c++四种强制类型转化
c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast C++ 类型转换(C风格的强制转换): (1)将浮点型数据赋值给整型变 ...
- AI-Tank
编程,就是编写人生,你的思维越好,就的生活就会充满乐趣,不多说了,下面来讲一个游戏. 讲游戏的开始,要说一点,游戏可以玩,不能沉溺.不然人的一生就会沦陷进去. 下面讲一个使用的代码游戏. 在玩游戏的时 ...
- 用js或css实现淡入淡出
淡入淡出?你问我有什么用? 提升首页13格的东西,你居然不知道!! 好啦,不废话了,正文. 1 js 主要元素:fadeIn() fadeOut() show hide 2 css 主要元素: o ...
- mysql_connect
in this passage, we slove the problem about Mysql_connect. first, let' see an example: resource mysq ...
- java class遍历属性
private void iterateClass(Object object) { Field[] fields = object.getClass().getDeclaredFields(); f ...
- Python实现Json结构对比的小工具兼谈编程求解问题
摘要: 通过使用Python编写一个解析Json结构对比的小工具,来提炼编程求解的通用步骤和技巧. 难度: 初级 先上代码. jsondiff.py #!/usr/bin/python #_*_enc ...
- Java设计模式应用——工厂模式
工厂模式有三种:简单工厂.工厂方法.抽象工厂 一. 抽象工厂 1. 一个可以生产多种产品的工厂: 2. 不改变工厂无法生产新的产品. package com.coshaho.learn.factory ...
- Java一元操作符++详解
废话不多说,直接上代码. package com.coshaho.learn; /** * * OperatorLearn.java Create on 2016-11-13 下午8:38:15 * ...