博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于java集合的一些操作
阅读量:4885 次
发布时间:2019-06-11

本文共 2170 字,大约阅读时间需要 7 分钟。

1.数组转集合

java提供了一个方法:Arrays.asList(T... a)的方法。

测试:

 

String[] arr  = {
"Lida","huanda","zhangda"}; //数组转集合list System.out.println(Arrays.asList(arr)); 输出结果: [Lida, huanda, zhangda] 这里需要注意的一点是,转出来的集合不能执行新增,删除等操作,如果执行list.add("xxx");会报错 java.lang.UnsupportedOperationException ,通过查看源码,Arrays.asList()返回new ArrayList<>(a),但这个和ArrayList有一些区别,这里返回的是java.util.Arrays$ArrayList,Arrays的内部类 部分源码:
/**  * @serial include  */ private static class ArrayList
extends AbstractList
implements RandomAccess, java.io.Serializable { private static final long serialVersionUID = -2764017481108945198L; private final E[] a; ArrayList(E[] array) { a = Objects.requireNonNull(array); }
该类继承了AbstractList,AbstractList继承了AbstractCollection,AbstractCollection里有add()和remove()方法,但都是抛出一个异常,并没有处理,继承的这些类都没有对这些方法进行重写,所以会报错。 部分源码:
public void add(int index, E element) {
throw new UnsupportedOperationException(); } /** * { @inheritDoc} * *

This implementation always throws an * { @code UnsupportedOperationException}. * * @throws UnsupportedOperationException { @inheritDoc} * @throws IndexOutOfBoundsException { @inheritDoc} */ public E remove(int index) { throw new UnsupportedOperationException(); } 2.集合转数组 例如:list转数组,java提供了两种方法:1.list.toArray();2.list.toArray(T[] a); 测试:

//第一种方式 List
list = new ArrayList(); list.add("lisi"); list.add("wangwu"); list.add("zhangsan"); *String[] str =(String[]) list.toArray(); //list.toArray()返回的是Object[]类型,这里直接整体强转会报错 //ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;不能整体进行强转,还是需要单转 //第二种方式 List
list = new ArrayList(); list.add("lisi"); list.add("wangwu"); list.add("zhangsan"); String[] arr = new String[list.size()]; String[] str = list.toArray(arr);
所以第二种使用时会更加方便。 补充1:在java8里面有一个String.join()的方法,这个方法在工作中还是蛮实用的,这里可以将集合,数组,或一些元素,以某种间隔符隔开,例如:
String str2 = String.join(",",list);//将list集合转为字符串,并且以,隔开,输出结果:lisi,wangwu,zhangsan
 
String str2 = String.join(",",arr); //可以是数组,输出结果:lisi,wangwu,zhangsan
String str2 = String.join(",","lsii","wangwu","zhansan");//还可以直接写字符串,输出结果:lisi,wangwu,zhangsan
 
待更。。。。。。
 
 
 

 

转载于:https://www.cnblogs.com/tdyang/p/10793181.html

你可能感兴趣的文章
点与不规则图形关系判断
查看>>
iOS 自定义控件--重写一些方法
查看>>
第二次冲刺作业
查看>>
【转】HTML, CSS和Javascript调试入门
查看>>
蓝桥历年试题 套娃
查看>>
微信支付体验
查看>>
Thinkphp 3.2笔记
查看>>
RHEL7开机不能正常进入系统(图形化界面)
查看>>
Android开发环境搭建完全图解
查看>>
详解BOM头以及去掉BOM头的方法
查看>>
PHP 手机浏览器访问网站获取手机相关信息方法集锦
查看>>
09年电子竞赛参赛技巧经验11条(转载)
查看>>
CSS颜色
查看>>
Unity 摄像头竖屏预览显示的问题
查看>>
HDU 5115 Dire Wolf(区间dp)
查看>>
C# 程序配置文件的操作(ConfigurationManager的使用)
查看>>
Springmvc完成分页的功能
查看>>
JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法
查看>>
tp 引入phpexcel 进行单表格的导入,在线浏览
查看>>
jsp基础速成精华讲解
查看>>