集合转数组的方法_数组与集合的区别

集合转数组的方法_数组与集合的区别数组集合转换 数组变字符串 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 有时候 需要让集合围成数组 因为有时需要限定对集合中的素操作 不需要对该素进行增删

数组集合转换

数组变字符串
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 c2 = new ArrayList();
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};
Listlist = Arrays.asList(arr);
System.out.println(list);//输出地址
(2)数组存储引用数据类型,则变成集合时,这些元素作为集合的元素存在
Integer[] arr = {3,1,5};
List list = Arrays.asLiat(arr);
System.out.println(list);//输出[3,1,5]

PS:数组转成的集合,不可进行增删操作(运行异常),可以替换(数组变量会有影响)
若想增删,将元素存入新集合

String[] arr1 = {"1","10","a","abc"};
//将数组转集合
Listlist = Arrays.asList(arr1);
System.out.println(list);
编程小号
上一篇 2025-02-06 10:17
下一篇 2025-02-15 23:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/119206.html