大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
数组集合转换
数组变字符串
int[] arr = {4,1,8,5,3,5};
System.out.println(Arrays.toString(arr));//[4,1,8,5,3,5]
1、集合转数组
Object[] toArrays()
E[] toArrays(E[] e);
有时候 需要让集合围成数组,因为有时需要限定对集合中的元素操作,不需要对该元素进行增删。
这里我们 可以 使用的是Collection接口中的toArray方法。
在使用toArray方法时,可以传入一个指定类型的数组。
那么toArray会返回该类型的数组并存储了集合中的元素。
给toArray方法传递的数组长度该怎么定义呢?
如果传入的数组长度小于集合的长度,那么该toArray方法内部会建立一个新的该类型的数组,并长度和集合一致,来存储集合的元素。
如果传入的数组长度大于集合的长度,那么就使用传入的数组存储集合的元素,没有存储数据的位置为null。
所以传入数组时,该数组长度最好定义成集合的的长度。这就是刚刚好的数组。
例: Collection<String> c2 = new ArrayList<String>();
c2.add("c++");
c2.add("python");
c2.add("php");
c2.add("c#");
System.out.println(c2);
//想使用数组元素是必须强制转换 相对麻烦
Object[] obj = c2.toArray();
System.out.println(((String)obj[1]).length());
//集合转数组
/*为了避免强制性转换,调用重载方法,传一个元素类型的数组即可*/
String[] arr = c2.toArray(new String[0]);
System.out.println(arr);//[Ljava.lang.String;@15db9742
System.out.println(arr[1]);//python
System.out.println(Arrays.toString(arr));//[c++, python, php, c#]
System.out.println(arr[1].length());//6
2、数组转集合
List Arrays.asList(数组参数);
(1)数组存储基本数据类型,则会将该数组作为集合元素存在
int[] arr = {4,1,8,5,3,5};
List<int[]>list = Arrays.asList(arr);
System.out.println(list);//输出地址
(2)数组存储引用数据类型,则变成集合时,这些元素作为集合的元素存在
Integer[] arr = {3,1,5};
List<Integer> list = Arrays.asLiat(arr);
System.out.println(list);//输出[3,1,5]
PS:数组转成的集合,不可进行增删操作(运行异常),可以替换(数组变量会有影响)
若想增删,将元素存入新集合
String[] arr1 = {"1","10","a","abc"};
//将数组转集合
List<String>list = Arrays.asList(arr1);
System.out.println(list);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191712.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...