一、数组转集合方法
在Java中,可以使用Arrays.asList()方法将数组转换为集合,这个方法接收一个数组, 返回一个类型为List(T)的集合。该方法存在的意义在于,可以将数组当做实参传递给方法,而不用去手动拷贝数组。
String[] arr = {"a", "b", "c", "d", "e"};
List list = Arrays.asList(arr);
System.out.println(list); // [a, b, c, d, e]
需要注意的是,Arrays.asList()返回的集合对象不能进行添加、删除操作,因为Arrays.asList()方法返回的集合是AbstractList的子类,而AbstractList并没有实现add()、remove()等方法。如果要添加或删除元素,可以使用List中的其他实现类,比如ArrayList:
String[] arr = {"a", "b", "c", "d", "e"};
List list = new ArrayList(Arrays.asList(arr));
list.add("f");
System.out.println(list); // [a, b, c, d, e, f]
二、集合转为数组的方法
将集合转换为数组的方法是Collection接口中的toArray()方法,该方法根据集合的元素数量创建一个新的数组,并将集合的元素复制到该数组中。 toArray()有两种重载形式:
一种是无参的toArray()方法,该方法返回一个Object类型的数组:
List list = new ArrayList();
list.add("a");
list.add("b");
String[] arr = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr)); // [a, b]
另一种是带参的toArray(T[] a)方法,该方法接收一个类型为T[]的数组作为参数,如果该数组的长度大于等于集合的元素数量,那么将集合的元素复制到该数组中,否则将创建一个新的数组,并将集合的元素复制到该数组中。这个方法常用于将集合转化为指定类型的数组。
List list = new ArrayList();
list.add("a");
list.add("b");
String[] arr = new String[3];
arr[2] = "c";
list.toArray(arr);
System.out.println(Arrays.toString(arr)); // [a, b, c]
三、集合转数组的方法
如果需要将一个集合转换成数组,也可以使用Collections类中的toArray()方法,该方法会根据集合中元素的类型创建一个新的数组,并将集合中的元素复制到该数组中。这个方法有两种重载形式:
一种是无参的toArray()方法,该方法返回一个Object类型的数组:
List list = new ArrayList();
list.add("a");
list.add("b");
Object[] arr = Collections.toArray(list);
System.out.println(Arrays.toString(arr)); // [a, b]
另一种是带参的toArray(T[] a)方法,接收一个类型为T[]的数组作为参数。如果该数组的长度大于等于集合的元素数量,那么将集合的元素复制到该数组中,否则将创建一个新的数组,并将集合的元素复制到该数组中。
List list = new ArrayList();
list.add("a");
list.add("b");
String[] arr = new String[3];
arr[2] = "c";
list.toArray(arr);
System.out.println(Arrays.toString(arr)); // [a, b, c]
四、数组转对象的方法
如果想将一个数组转换成一个Object对象,可以使用Arrays类中的toString()方法或者deepToString()方法:
int[] arr = {1, 2, 3};
Object obj1 = Arrays.toString(arr); // "[1, 2, 3]"
Object obj2 = Arrays.deepToString(arr);// 抛出异常
当使用toString()方法转换基本类型数组时,得到的结果只是一个字符串。如果要转换一个Object数组,使用Arrays类的deepToString()方法。
五、小结
本文详细介绍了数组转集合的方法,包括使用Arrays.asList()方法和使用List中的其他实现类;集合转为数组的方法,包括使用Collection接口中的toArray()方法和带参的toArray(T[] a)方法;集合转数组的方法,包括使用Collections类中的toArray()方法;数组转对象的方法,包括使用Arrays类中的toString()方法和deepToString()方法。在实际开发中,如果需要将数组和集合进行转换,可以根据业务需求来选择不同的方法。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/269987.html