1.数组转成List

数组转成List可以用方法 :Arrays.asList,一起来了解一下

 System.out.println(Arrays.asList(new String[] { "a", "b" }));

打印:[a, b]

List<Integer> asList2 = Arrays.asList(new Integer[] { 1, 2 });
System.out.println(asList2);

打印:[1, 2]

以下会得到非预期的结果

List<int[]> asList = Arrays.asList(new int[] { 1, 2 });
System.out.println(asList);

打印:[[I@4e25154f]

如果你打算将一个基本类型的数组转换为所对应的封装类型的list,使用Apache Commons Lang吧,可能你的项目正在使用它,类似下面这样使用ArrayUtils.toObject:

List<Integer> list = Arrays.asList(ArrayUtils.toObject(new int[] { 1, 2 }));
System.out.println(list);

打印:[1, 2]

注意使用工具类Arrays.asList()把数组转成集合时,不能使用其修改集合的相关方法,它的add/remove/clear方法会抛出java.lang.UnsupportedOperationException异常。asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法,后台的数据仍是数组,对数组的修改会影响到集合:

String[] countries = { "China", "Russia", "American" };
List<String> asList3 = Arrays.asList(countries);
countries[2] = "France";
System.out.println(asList3);

打印:[China, Russia, France]

2.List转成数组

而List转成数组可以list的toArray(T[] array)方法,传入类型完全一样的数组,数组的大小传list.size()。

List<String> fruits = new ArrayList<String>();
fruits.add("Apple");
fruits.add("Pear");
fruits.add("Orange");
String[] array = fruits.toArray(new String[fruits.size()]);

  

JAVA数组与List相互转换的更多相关文章

  1. java数组与字符串相互转换、整型与字符串相互转换【详解】

      java 数组->字符串 1.char数组(字符数组)->字符串 可以通过:使用String.copyValueOf(charArray)函数实现.  举例: char[] arr={ ...

  2. java数组和字符串相互转换

    将字符串变成数组 Java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组. 特殊,转义字符,必须加"\\"(“.”和“ ...

  3. json相关类库,java对象与json相互转换

    有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...

  4. java对象与xml相互转换 ---- xstream

    XStream是一个Java对象和XML相互转换的工具,很好很强大.提供了所有的基础类型.数组.集合等类型直接转换的支持. XStream中的核心类就是XStream类,一般来说,熟悉这个类基本就够用 ...

  5. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  6. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

  7. Java 数组基础

    数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int ...

  8. Java数组及其内存分配

    几乎所有的程序设计语言都支持数组.Java也不例外.当我们需要多个类型相同的变量的时候,就考虑定义一个数组.在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静 ...

  9. [转载]Java数组扩容算法及Java对它的应用

    原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...

随机推荐

  1. Oracle PL/SQL异常、存储过程和触发器

    一.异常 1.处理异常 (1)除数不为0 declare b number; begin b:; exception when zero_divide then dbms_output.put_lin ...

  2. php并发

    bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件指针.o ...

  3. CRM WEB UI 01 BOL向导创建的搜索

    创建BOL的步骤就不说了,自己找,学习这个之前,需要自己先找个SAP CRM资料预习一下 T-CODE:BSP_WD_CMPWB 1.创建组件:输入组件名:ZLYTEST03,点击创建按钮,回车,选择 ...

  4. Mysql for Linux安装配置之—— 源码安装

    1.安装 --假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源码压缩文件1)先安装cmake(mysql5.5以后是通过cmake来编译的)   # ta ...

  5. Eclipse错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    该报错是由于缺少servlet-api.jar造成的,将servlet-api.jar复制到项目下的WEB-INF/lib目录下即可 servlet-api.jar在tomcat的lib目录下有,可以 ...

  6. 在springboot中验证表单信息(六)

    构建工程 创建一个springboot工程,由于用到了 web .thymeleaf.validator.el,引入相应的起步依赖和依赖,代码清单如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  7. python删除指定路径的文件

    import os            import glob                        path =imgDate_listResult            for infi ...

  8. nodejs安装 淘宝镜像

    1◆ nodejs下载 2◆ 安装 3◆ 测试   4◆ 淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org   5 ...

  9. js之querySelector方法

    querySelector()接受一个CSS选择符,返回匹配的第一个元素,反之则NULL. 如: var body = document.querySelector('body'); var mydi ...

  10. C++ Templates STL标准模板库的基本概念

    STL标准库包括几个重要的组件:容器.迭代器和算法.迭代器iterator,用来在一个对象群集的元素上进行遍历操作.这个对象群集或许是一个容器,或许是容器的一部分.迭代器的主要好处是,为所有的容器提供 ...