Arrays
Arrays:用于操作数组的工具类,里面都是静态方法
---数组变集合
1.asList:将数组变成List集合
把数组变成list集合的好处?可以使用集合的思想和方法来操作数组中的元素
注意:将数组变成集合,不可以使用集合的增删方法,因为数组的长度是固定的,如果发生了增删操作,那么会发成不支持操作异常(UnsupportedOperationException)
2.如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在
方法代码示例:
package Arrays; import java.util.*; public class ArraysDemo1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int [] arr = {1,2,3}; System.out.println(Arrays.toString(arr)); System.out.println("-----------"); //asList将数组变成集合 String[] arr1 = {"a","cc","kkkk"}; List<String> list = Arrays.asList(arr1); sop(list); System.out.println("-----------"); /* 如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素 如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在*/ int [] arr2 = {1,2,3}; List list2 = Arrays.asList(arr2); sop(list2); System.out.println("-----------"); Integer[] arr3 = {4,5,6}; List list3 = Arrays.asList(arr3); sop(list3); } public static void sop(Object obj){ System.out.println(obj+","); } }
集合变数组:Collection接口中的toArray方法
- 指定类型的数组到底要定义多长那?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size
当指定类型的数组长度大于了集合的size,就不会新创建数组,而是使用传递进来的数组
所以创建一个刚刚好的数组最优
- 为什么要将集合变为数组?
为了限定对元素的操作。不需要进行增删了
package Arrays; import java.util.*; public class CollectionToArrayDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String> list = new ArrayList<String>(); list.add("abc1"); list.add("abc2"); list.add("abc3"); String[] arr = list.toArray(new String[list.size()]); System.out.println(Arrays.toString(arr)); } }