1. ArrayList转Array

    (1):使用ArrayList的toArray方法。

        1)当ArrayList中存放的是引用类型时(例如String),成功

        /**

         * 使用了ArrayList的toArray方法 ,ArrayList里存放的是String(引用类型)

         */

        @Test

        public
    void list2Array1() {

            ArrayList<String> arrayList = new ArrayList<String>();

            arrayList.add("1");

            arrayList.add("2");

            arrayList.add("3");

     

            Object[] array = arrayList.toArray(new String[3]);

     

            for (Object o : array) {

                System.out.println(o);

            }

        }

    输出为:

    [1, 2, 3]

     

        2) 当ArrayList中存放的是基本数据类型时(例如int),成功

    /**

         * 使用了ArrayList的toArray方法 , ArrayList里存放的是int(基本数据类型)

         */

        @Test

        public
    void list2Array2() {

            ArrayList<Integer> arrayList = new ArrayList<Integer>();

            arrayList.add(1);

            arrayList.add(2);

            arrayList.add(3);

     

            Object[] array = arrayList.toArray();

     

            System.out.println(Arrays.toString(array));

        }

    输出为:

    [1, 2, 3]

  2. Array转ArrayList

    (1):使用Arrays的asList方法。

    1)当Array中存放的是引用类型时(例如String),成功

    /**

    * 使用Arrays的asList方法,Array中存放的String(引用类型)

    */

    @Test

    public
    void array2List1() {

        String[] stringArray = new String[] { "1", "2", "3" };

        List<String> list = Arrays.asList(stringArray);

     

        System.out.println(list);

    }

    输出为:

    [1, 2, 3]

     

        2) 当Array中存放的是基本数据类型时(例如int),不成功

    /**

         * 使用Arrays的asList方法,Array中存放int(基本类型)

         */

        @Test

        public
    void array2List2() {

            int[] intArray = new
    int[] { 1, 2, 3 };

            List<int[]> intList = Arrays.asList(intArray);

     

            System.out.println(intList.size());

            for (int[] is : intList) {

                System.out.println(Arrays.toString(is));

            }

        }

    输出为:

    [[I@14514713]

    List的长度为 : 1

    [1, 2, 3]

     

        这个问题解决的方法就是将int[]换成Integer[],这样内容就成了对象数组(即引用类型)。

    /**

         * 使用Arrays的asList方法,Array中存放int(基本类型)

         */

        @Test

        public
    void array2List3() {

            Integer[] integerArray = { 1, 2, 3 };

            List<Integer> intList = Arrays.asList(integerArray);

     

            System.out.println(intList);

            System.out.println("List的长度为 : " + intList.size());

            for (Integer is : intList) {

                System.out.println(is);

            }

        }

    输出为:

    [1, 2, 3]

    List的长度为 : 3

     

     

    参考文献:

    java中数组与List相互转换的方法

    基本数据类型数组转换列表显的有些力不从心

ArrayList和Array之间的转换的更多相关文章

  1. ArrayList和List之间的转换

    开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: package test.test1; import java.util.ArrayList; import java.util.L ...

  2. Java-Collection、Map及Array之间的转换

    1 List -> Map 设个User类: public class User { private String userName; private String userId; privat ...

  3. Java-Collection、Map和Array之间的转换

    1 List -> Map 设个User类: public class User { private String userName; private String userId; privat ...

  4. C#中ArrayList 、Array与、string、string[]数组的相关转换

    一.ArrayList 与 string.string[]数组的转换 1.ArrayList 转换为 string[] : ArrayList list = new ArrayList(); list ...

  5. 37.Activity之间的转换以及数据的传递(Intent)学习

      Intent简介:                                                                                在一个Androi ...

  6. JAVA中list,set,数组之间的转换详解

    JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.coll ...

  7. Java 集合 集合与数组之间的转换

    Java 集合 集合与数组之间的转换 @author ixenos 数组转集合 Arrays.asList(T... a) 先给结论:用 Arrays.asList(T... a) 将数组转换成集合 ...

  8. java中 列表,集合,数组之间的转换

    java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...

  9. JSON字符串和JS对象之间的转换

    JSON字符串和JS对象之间的转换 1 json字符串转换为js对象 1.1 标准json格式字符串转换为Js对象  JSON字符串 str JSON.parse(str) eval(str) eva ...

随机推荐

  1. delphi label1 文字在窗体上水平来回移动

    //文字在窗体上水平来回移动 procedure TForm1.Timer1Timer(Sender: TObject);{ Timer1.Interval:=10;}begin  if label1 ...

  2. android圆角View实现及不同版本这间的兼容(android3.0过后的版本)

    http://blog.csdn.net/lovecluo/article/details/8710174 在做我们自己的APP的时候,为了让APP看起来更加的好看,我们就需要将我们的自己的View做 ...

  3. 《RESTful Web Services》第三章 设计表述

    3.1 如何使用实体头来注解表述     表述不仅仅是以某种格式序列化后的数据,它是一连串字节加上用于描述那些字节的元数据.     Content-Type,用于描述表述类型.这个标头告诉接收方如何 ...

  4. 高级I/O之STREAMS

    http://en.wikipedia.org/wiki/STREAMS STREAMS(流)是系统V提供的构造内核设备驱动程序和网络协议包的一种通用方法,对STREAMS进行讨论的目的是为了理解系统 ...

  5. 【不怕坑】之 Node.js加密 C#解密

    本人也不太了解AES加密解密,为了解决Node.js加密,但是无法C#解密的问题,在网上搜了大量的相关文章. 但是多数是Node.js vs Java 或 Java vs C#的双向加密解密代码,但是 ...

  6. Jordan Lecture Note-12: Kernel典型相关分析(Kernel Canonical Correlation Analysis, KCCA).

    Kernel典型相关分析 (一)KCCA 同样,我们可以引入Kernel函数,通过非线性的坐标变换达到之前CCA所寻求的目标.首先,假设映射$\Phi_X: x\rightarrow \Phi_X(x ...

  7. vim替换命令

    转载:http://blog.csdn.net/glorin/article/details/6317098 替換(substitute) :[range]s/pattern/string/[c,e, ...

  8. QNetworkAccessManager的异步与线程

    Qt版本5.1.1 以HTTP操作为例 Qt中的HTTP操作都是异步的. 内部通过线程实现 创建线程的时机在QNetworkReplyHttpImplPrivate::postRequest() vo ...

  9. 沈逸老师PHP魔鬼特训笔记(2)

    一.这一课会学习到几个懒人函数: 1.file_put_contents (PHP 5, PHP 7) file_put_contents — 将一个字符串写入文件 说明 int file_put_c ...

  10. iOS通过UIAlertController弹出底部选择框来调用相机或者相册

    UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:nil message:nil preferredSt ...