广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java如何将数组转换成List?(代码示例)
  • 953
分享到

Java如何将数组转换成List?(代码示例)

java教程java数组List 2019-10-30 16:10:43 953人浏览 无得
摘要

有时候我们需要将数组类型转换成为集合类型,因为后者是一个更为强大的数据结构,java.util.List 有许多普通数组不支持的功能。比如:我们可以通过List的内置方法轻易地检测list是否包含某一个特定的值。下面是一些怎么将数组转换为l

有时候我们需要将数组类型转换成为集合类型,因为后者是一个更为强大的数据结构,java.util.List 有许多普通数组不支持的功能。比如:我们可以通过List的内置方法轻易地检测list是否包含某一个特定的值。下面是一些怎么将数组转换为list的例子。

通过 java.util.Arrays.asList()将 Array 转换成 List

Arrays 类有一个方便的方法asList,可以帮助转换任务,下面是语法:

public static  List asList(T... a)

注意:参数不一定必须是数组,可变参数也可以。它可以创建一个lis

public class Test {
   public static void main(String[] args) {
      List myList = Arrays.asList("Apple");
   }
}

以上代码将穿件一个包含一个元素"Apple"的集合。我们也可以这样做:

public class Test {
   public static void main(String[] args) {
      List myList = Arrays.asList("Apple", "Orange");
   }
}

这将生成一个包含两个元素"Apple","Orange"的集合

因为这是一个可变参数。我们可以传递一个数组,数组元素被认定为参数,例子:

public class Test {
   public static void main(String[] args) {
      String[] myArray = { "Apple", "Banana", "Orange" };
      List myList = Arrays.asList(myArray);
      for (String str : myList) {
         System.out.println(str);
      }
   }
}

这样,一个String集合被创建出来了。数组myArray被添加进去了。myList 集合有三个元素,一下是输出:

Apple
Banana
Orange

陷阱

这个方法有一些问题,传递进去的数组必须是一个对象数组,而不能是一个基本类型数组。比如:

public class Test {
   public static void main(String[] args) {
      int[] myArray = { 1, 2, 3 };
      List myList = Arrays.asList(myArray);
      System.out.println(myList.size());
   }
}

代码输出是1。为什么呢?因为asList方法期望一个对象的可变参数,但是传递进去的参数是一个基本类型数组,它创建了一个数组集合。所以该集合的为唯一元素是myArray。因此 myList.get(0) 将返回与myArray同样的对象。

asList()创建的对象是固定大小的

asList()方法返回的list对象是固定大小的,不能容纳更多的元素,比如:

public class Test {
   public static void main(String[] args) {
      String[] myArray = { "Apple", "Banana", "Orange" };
      List myList = Arrays.asList(myArray);
      myList.add("Guava");
   }
}

输出如下:

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(AbstractList.java:148)
    at java.util.AbstractList.add(AbstractList.java:108)
    at Test.main(Test.java:8)

因为myList是固定长度的,不能添加更多元素。

因为该方法返回的List对象不是java.util包下面的ArrayList,而是Arrays内部的ArrayList类型。改类没有实现add,revmove,clear方法,所以任何对改集合结构修改的调用都将失败。

将基本数组类型转换成List

正如上面提到的。传递一个基本类型数组到asList方法不生效,一个不引入第三方库的解决办法是通过Java8 的流,例子如下:

public class Test {
   public static void main(String[] args) {
      int[] intArray = { 5, 10, 21 };
      List myList = Arrays.stream(intArray).boxed()
            .collect(Collectors.toList());
   }
}

数组的每一个元素都被从int转换成了Integer类型(装箱),数组就被转成了List类型。

将数组转换成允许添加元素的List

正如上面陷阱部分提到的,Arrays.asList()方法不支持添加或者移除元素。如果你不想这样,下面是可选方案:

public class Test {
   public static void main(String[] args) {
      String[] myArray = { "Apple", "Banana", "Orange" };
      List myList = new ArrayList(Arrays.asList(myArray));
      myList.add("Guava");
   }
}

这段代码显式地创建了一个新的ArrayList对象,然后将Arrays.asList的结果添加进去了。因为我们创建了一个ArrayList。所以没有添加移除限制,上面的代码执行结束前有四个元素。不要指望代码执行时抛出异常。

自己实现Array组转换成List

有时候解决问题,使用我们自己的实现方案是更好的。下面是一个将java数组转换成List的简单例子:

public class Test {
   public static void main(String[] args) {
      String[] myArray = { "Apple", "Banana", "Orange" };
      List myList = new ArrayList();
      for (String str : myArray) {
         myList.add(str);
      }
      System.out.println(myList.size());
   }
}

代码的预期输出是3.因为逻辑执行完集合了有3个元素。

我们代码的负面是代码更长了,而且我们在重复造轮子。好处就是当我们的需求改变时,我们可以顺应自定义。比如:下面的代码,每一个元素都被添加到list中两次

public class Test {
   public static void main(String[] args) {
      String[] myArray = { "Apple", "Banana", "Orange" };
      List myList = new ArrayList();
      for (String str : myArray) {
         myList.add(str);
         myList.add(str);
      }
      System.out.println(myList.size());
   }
}

输出是6,因为数组中的元素都被添加两次。下面是另外一个将String数组转换成List 的例子:

public class Test {
   public static void main(String[] args) {
      String[] myArray = { "5", "6", "7" };
      List myList = new ArrayList();
      for (String str : myArray) {
         myList.add(Integer.valueOf(str));
      }
   }}

解析数组中的每个String并将其转换为相应的Integer。结果列表将包含所有转换后的整数。

推荐学习:java视频教程

--结束END--

本文标题: Java如何将数组转换成List?(代码示例)

本文链接: https://www.lsjlt.com/news/3073.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何将数组转换成List?(代码示例)
    有时候我们需要将数组类型转换成为集合类型,因为后者是一个更为强大的数据结构,java.util.List 有许多普通数组不支持的功能。比如:我们可以通过List的内置方法轻易地检测list是否包含某一个特定的值。下面是一些怎么将数组转换为l...
    99+
    2019-10-30
    java教程 java 数组 List
  • php中怎么将数据转换成json?(代码示例)
    PHP是一种广泛使用的编程语言,旨在开发Web应用程序。它是一种服务器端脚本语言,它与数据库和其他类型的服务器端技术一起使用来创建优秀的Web应用程序。在PHP中,将数据转换为JSON格式是一项非常常见的任务。JSON是一种轻量级的数据交换...
    99+
    2023-05-14
    php json
  • 如何在java中把数组转换成list
    本篇文章为大家展示了如何在java中把数组转换成list,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、...
    99+
    2023-06-14
  • JS将伪数组转换成数组的实现示例
    目录什么是伪数组?转换ES5 的做法方法1方法2ES6的做法第三个参数的用法(不常用)Array.from 其他玩法把字符串转换成数组在 JS 中,伪数组 是非常常见的,它也叫 类数...
    99+
    2022-11-13
  • Java将Object转换为数组的代码
    今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作。 下面展示了一部分代码: public static boolean isEmp...
    99+
    2022-11-13
  • 如何在java中将Arrays.asList转换成数组
    如何在java中将Arrays.asList转换成数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程...
    99+
    2023-06-14
  • Java中如何将json字符串转换成map/list
    目录将json字符串转换成map/list字符串,json,Map互相转换(各种转换都有)前提:使用jar包为fastjson程序如下将json字符串转换成map/list impo...
    99+
    2022-11-13
  • java如何将json字符串转换成数组
    使用Java中的JSON库,如json-simple或Gson,可以将JSON字符串转换为数组。以下是使用这两个库的示例代码:1. ...
    99+
    2023-10-20
    java json
  • ES6如何将伪数组转换成数组
    今天小编给大家分享一下ES6如何将伪数组转换成数组的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2022-10-19
  • JavaScript如何将伪数组转换成数组
    目录前言什么是伪数组?转换ES5 的做法方法1方法2ES6的做法第三个参数的用法(不常用)Array.from 其他玩法把字符串转换成数组前言 在 JS ...
    99+
    2022-11-13
  • 如何在python中将numpy数组转换为list
    如何在python中将numpy数组转换为list?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenSta...
    99+
    2023-06-14
  • php如何将json转换成数组
    小编给大家分享一下php如何将json转换成数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在php中可以通过json_decode函数将json转换成数组,该...
    99+
    2023-06-14
  • JavaScript如何将NodeList转换成数组
    小编给大家分享一下JavaScript如何将NodeList转换成数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!将NodeList转换成数组如果你运行docu...
    99+
    2023-06-27
  • php如何将xml转换成数组
    这篇文章给大家分享的是有关php如何将xml转换成数组的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php将xml转换成数组的方法:首先将xml数据转成object(对象)格式的数据;然后使用json_encod...
    99+
    2023-06-08
  • java将XML文档转换成json格式数据的示例
    本文介绍了java将XML文档转换成json格式数据的示例,分享给大家,具体如下:功能将xml文档转换成json格式数据说明依赖包: jdom-2.0.2.jar : xml解析工具包; fastjson-1.1.36.jar : 阿里...
    99+
    2023-05-30
    java xml json
  • 如何将PHP页面转换成HTML代码
    PHP是一种非常流行的后端编程语言。它可以帮助我们构建各种动态网站和应用程序。但是,在一些情况下,我们可能需要将PHP页面转换成HTML代码。这个过程看起来可能有些棘手,但是我们可以通过一些简单的步骤来实现它。首先,让我们先了解一下为什么会...
    99+
    2023-05-14
  • php如何将数组转换成对象
    这篇文章主要为大家展示了php如何将数组转换成对象,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php如何将数组转换成对象”这篇文章吧。php有什么用php是一个嵌套的缩写名称,指的是英文超级文本...
    99+
    2023-06-06
  • php如何将object转换成数组中
    今天小编给大家分享一下php如何将object转换成数组中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在PHP中,可以使用...
    99+
    2023-07-06
  • Java如何将String转换成json对象或json数组
    目录将String转换成json对象或json数组字符串转json数组的解决首先导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个j...
    99+
    2022-11-13
  • php如何将数组转换成字符串
    在php中使用implode函数将数组转换成字符串:implode函数是用于返回一个由数组元素组合成的字符串,语法:implode(separator,array);在php中使用implode函数将数组转换成字符串,具体方法如下:impl...
    99+
    2022-10-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作