集合框架-数组与集合互转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合框架-数组与集合互转相关的知识,希望对你有一定的参考价值。
数组和集合类同是容器,有何不同?
数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。
数组中可以对象和存储基本数据类型,集合只能存储对象。
集合框架-数组转成集合
java.util 类 Arrays
* Arrays:用于操作数据的工具类提供了很多常见的方法比如排序,搜索等。
* 该类中的方法都是静态的。
* 数组转成集合 Arrays.asList([]);
* 好处:可以使用集合list的方法来操作数组中的元素。可以使用集合 改查方法,只要不改变数组长度都可以。
* 弊端:不可以使用集合的增删方法。
package cn.itcast.p3.arrays; import java.util.Arrays; import java.util.List; public class ArraysDemo { public static void main(String[] args) { //int[] arr = {31,99,5,7,2,65}; //System.out.println(Arrays.toString(arr)); String[] strs = {"abc","hehe","haha","heihei"}; List<String> lists = Arrays.asList(strs); //lists.add("xixi");//UnsupportedOperationException list集合中使用的最终还是这个数组, //数组是固定长度的。所以不可以对其进行增删。 System.out.println(lists); System.out.println(lists.contains("haha")); //特殊情况: int[] nums = {45,12,98}; /* * 如果数组中存储的是基本数据类型值,那么asList会将这个数组实体作为集合中的元素。 * 如果数组中存储的都是对象,那么aslist会将数组中的元素作为集合中的元素。 */ List<int[]> list = Arrays.asList(nums);//存在集合里面的是 数组这一个元素 System.out.println(list); Integer[] nums2 = {56,89,100}; List<Integer> list2 = Arrays.asList(nums2); System.out.println(list2); } }
集合框架-集合转成数组
* 集合转成数组
Collection 接口中的方法 toArray();
T[] toArray(T[])
<T> T[] toArray(T[] a)
将集合转成数组
* 如果传递的数组长度小于集合的长度,在toArray内部会自动创建一个长度和集合相同的数组。用于存储集合的元素。
* 如果传递的数组长度大于等于集合的长度,则使用该数组存储集合的元素。
* 一般情况下,数组的长度最好使用集合的size();
*
* 限定对数组元素的更多操作比如增删。
package cn.itcast.p3.arrays; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class ToArray { public static void main(String[] args) { Collection<String> coll = new ArrayList<String>(); coll.add("abc1"); coll.add("abc2"); coll.add("abc3"); String[] arr = coll.toArray(new String[coll.size()]); System.out.println(Arrays.toString(arr)); } }
以上是关于集合框架-数组与集合互转的主要内容,如果未能解决你的问题,请参考以下文章