`
weitao1026
  • 浏览: 1047554 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用 java8 实现List到Array的转换

 
阅读更多

开发中需要调用第三方的库,有些 API 的入参要求是 double[] 数组,程序根据用户在页面的输入,计算出一个 double[] 作为返回值的结果,然后调用这个 API。

往往无法预先知道这个 double[] 数组的大小,就不能直接定义一个 double[] 的变量,只能借助 List,先将数据放入 List, 再转换为 double[] 数组。这个很简单,一个 for 循环就搞定了,但是使用 java 8 的 stream 特性就能让代码更优雅些。下面是我程序中的例子:

 

[java] view plain copy
 
print?
  1. List<Double> factorValueList = new ArrayList<>();  
  2. for (Integer defId : input.getCohortDefIds()) {  
  3.     for (double d : calcVarValues(defId, factorVar)) {  
  4.         factorValueList.add(d);  
  5.     }  
  6. }  
  7. double[] factorVarValues = factorValueList.stream().mapToDouble(Double::doubleValue).toArray();  
List<Double> factorValueList = new ArrayList<>();
for (Integer defId : input.getCohortDefIds()) {
	for (double d : calcVarValues(defId, factorVar)) {
		factorValueList.add(d);
	}
}
double[] factorVarValues = factorValueList.stream().mapToDouble(Double::doubleValue).toArray();


List 本身有个 API, 是带参数的 toArray(),但是在某些情况下,转型后 Array 编译没问题,运行时报错,具体什么错我忘了,下次发现了再来更新文章。

为保险起见,还是使用 stream 最可靠,代码也好看。

 

转换数组为List

1.使用Stream中的Collector收集器,代码:

 

[java] view plain copy
 
print?
  1. String[] arrays = new String[]{"a""b""c"};  
  2. List<String> listStrings = Stream.of(arrays).collector(Collectors.toList());  
        String[] arrays = new String[]{"a", "b", "c"};
        List<String> listStrings = Stream.of(arrays).collector(Collectors.toList());


2. 使用java.util.Arrays工具类中的asList()方法(这个不是Java8中新增的内容):

 

 

[java] view plain copy
 
print?
  1. String[] arrays = new String[]{"a""b""c"};  
  2. List<String> listStrings = Arrays.asList(arrays);  
        String[] arrays = new String[]{"a", "b", "c"};
        List<String> listStrings = Arrays.asList(arrays);


转换List为数组

1. 使用Stream:

 

[java] view plain copy
 
print?
  1. String[] ss = listStrings.stream().toArray(String[]::new);  
String[] ss = listStrings.stream().toArray(String[]::new);

2. 使用List中的toArray()方法

 

[java] view plain copy
 
print?
  1. String[] sss = listStrings.toArray(new String[listStrings.size()]); 
分享到:
评论

相关推荐

    java List、Set与Array之间的相互转换

    - **Array转Set**: 你可以先将Array转换为List,然后再转换为Set: ```java String[] array = ...; List&lt;String&gt; list = Arrays.asList(array); Set&lt;String&gt; set = new HashSet(list); ``` 4. **注意事项** ...

    详解Java如何在Array和List之间进行转换.rar

    总结,Java中Array和List之间的转换主要依赖于Arrays类的asList()方法、ArrayList的toArray()方法以及Java 8引入的Stream API。理解这些转换方式及其适用场景,能够帮助我们在编程中更灵活地处理数据结构,提高代码...

    java中List、Array、Map、Set等集合相互转换

    在 Java 中,将 List 转换为 Array 可以使用 toArray() 方法,例如: ```java List&lt;String&gt; list = new ArrayList(); list.add("China"); list.add("Switzerland"); list.add("Italy"); list.add("France"); String...

    java XML转成LIST可以转成指定的类数组

    在Java编程中,XML...通过以上步骤,我们可以方便地在Java中实现XML到指定类型List的转换,同时支持多层数据结构的处理。在实际开发中,根据具体需求调整模型类和转换方法,可以灵活应对各种XML数据结构的处理。

    数组和list相互转换

    Java提供了强大的标准库支持,可以方便地完成数组到列表的转换。具体实现方式如下: ```java import java.util.Arrays; import java.util.List; public class ArrayToList { public static void main(String[] ...

    list转换成string数组

    在Java编程语言中,经常需要将`List&lt;String&gt;`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应某些方法的要求。本文将详细探讨这一转换过程,并通过几个具体的示例来帮助理解。 #### 一、基础...

    Java集合List与Array的相互转换

    本文将详细介绍如何在Java中将List转换为Array,以及Array转换为List。 首先,我们来看如何将List转换为Array。在Java中,List接口提供了一个`toArray(T[] array)`方法,用于将List转换为指定类型的数组。这个方法...

    Java 在 Array 和 Set 之间进行转换的示例.rar

    - **数据丢失**:当从Array转换到Set时,如果Array中有重复元素,Set会自动去除重复,因为Set不允许重复元素。 - **类型安全**:在进行转换时,确保源类型和目标类型匹配,否则可能会出现ClassCastException。 - ...

    List转换成String数组

    在实际开发过程中,我们经常会遇到需要将列表(List)中的元素转换为数组(Array)的情况。例如,在处理HTTP请求响应、数据库查询结果或者文件I/O操作时,将数据从一种形式转换为另一种形式是非常常见的需求。`List...

    java-对象数组转换为json

    下面将深入探讨如何在Java中实现对象数组向JSON的转换,并反过来将JSON字符串转换为Java对象数组,同时也会提及一些相关技术和代码示例。 ### Java对象数组转JSON 首先,我们来看如何将一个Java对象数组转换成JSON...

    StringtoList和StringtoMap和StringtoObject和StringtoArray

    在处理JSON时,我们有时需要将JSON字符串转换为Java中的各种数据类型,如List、Array、Map和自定义对象。本文将详细介绍如何进行这些转换,并提供一个封装好的转换方法和示例。 1. **String to List** JSON字符串...

    10个Java经典的List面试题

    List 可以使用 toArray() 方法转换为 Array,Array 可以使用 Arrays.asList() 方法转换为 List,由于 Arrays.asList() 方法返回的是固定的 List,可以使用 new ArrayList(Arrays.asList(array)) 方法来创建一个可扩...

    使用json-lib将java对象转换成json字符串

    - 如果需要转换的是一个List或者数组,可以使用`JSONArray.fromObject(list)`或`JSONArray.fromObject(array)`。 5. **最佳实践**: - 在实际开发中,为了保证代码的可读性和可维护性,建议在转换前先对Java对象...

    Java 数组转list.docx

    Java 数组转换为 List 是 Java 编程中一个常见的操作。List 是 Java 中的一种集合类型,用于存储多个元素,而数组是固定长度的元素集合。将数组转换为 List 可以提供更多的灵活性和便捷性。在本文中,我们将介绍两种...

    java 数组转list.docx

    在 Java 中,将数组转换为 List 是一个常见的操作。下面将详细介绍四种常用的方法,以便更好地理解和应用。 方法 1:使用 Arrays 类的 asList() 方法 使用 Arrays 类的 asList() 方法可以将数组转换为 List。该...

    10个Java经典的List面试题!.pdf

    可以使用toArray()方法将List转换为Array,也可以使用Arrays.asList()方法将Array转换为List。需要注意的是,Arrays.asList()方法返回的List是固定的,不可以添加或删除元素。如果需要添加或删除元素,可以使用new ...

    java-任何类型转换成json数据格式

    - 使用反射机制获取Java Bean的属性描述信息时,需要确保Bean对象遵循Java Bean规范,否则可能会导致转换失败。 - 在处理大量数据时,需要考虑性能优化问题,例如可以采用StringBuilder来构建JSON字符串,而不是频繁...

    Array和Collection相互转换以及copy深度的小测

    **从Array转换到Collection** 1. **Arrays.asList()**: 这是将数组转换为`List`的最简单方式。例如: ```java String[] array = {"a", "b", "c"}; List&lt;String&gt; list = Arrays.asList(array); ``` 注意,这种...

    java传list给存储过程,项目提取,不忽悠

    Java的`toArray()`方法可以实现List到数组的转换。 5. **设置参数**: 使用`CallableStatement`的`setObject()`方法为每个参数设置值,参数位置通常从1开始计数。对于List,需要遍历数组并逐个设置。 6. **执行...

    Java经典的List面试题目

    - Array转List:可以使用`Arrays.asList(array)`将数组转换为List,但这个List是固定大小的,不支持add操作。 - List转Array:通过List的`toArray()`方法可以将其转换为数组,如果需要指定类型的数组,可以使用`...

Global site tag (gtag.js) - Google Analytics