Java数组学习--数组与ArrayList转换

来源:互联网 发布:php node.js共存 编辑:程序博客网 时间:2024/05/29 06:41
import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Random;public class Test {    public static void main(String[] args) {        Random rand = new Random(34);        int[] a = new int[5];        for(int i = 0; i < 5; i++) {            a[i] = rand.nextInt(10);        }        System.out.println(Arrays.toString(a));//      List<Integer> intList1 = new ArrayList<Integer>(Arrays.asList(a));  不能用基本数据类型作参数        String[] strArray = {"Apple","Banana","Pear","melon"};        List<String> strList1 = new ArrayList<String>(Arrays.asList(strArray));        System.out.println(strList1);        List<String> strList2 = new ArrayList<String>(Arrays.asList("Apple","Banana","Pear","melon"));        System.out.println(strList2);        List<Integer> intList2 = Arrays.asList(4,78,7,58,4,45,5);         System.out.println(intList2);//      intList2.add(3);  运行会报错    }}

运行结果:
[6, 3, 7, 9, 3]
[Apple, Banana, Pear, melon]
[Apple, Banana, Pear, melon]
[4, 78, 7, 58, 4, 45, 5]

学习点:
1. Random类的使用。
2. 打印数组a,可以用Arrays.toString(a)来实现。
3. 数组a转化为ArrayList,可以用Arrays.asList(Object[])实现。
(JDK 1.4对java.util.Arrays.asList的定义,函数参数是Object[]。所以,在1.4中asList()并不支持基本类型的数组作参数。
JDK 1.5中,java.util.Arrays.asList的定义,函数参数是Varargs, 采用了泛型实现。同时由于autoboxing的支持,使得可以支持对象数组以及基本类型数组。)
4. 利用Arrays.asList(array)将返回一个List,然而这个返回的List并不支持add和remove的操作。运行会报错如下:
Exception in thread “main” java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at Test.main(Test.java:28)
5. 上面有两种创建ArrayList的方式。
6. System.out.println()可以直接打印ArrayList.

0 0
原创粉丝点击