开发中需要调用第三方的库,有些 API 的入参要求是 double[] 数组,程序根据用户在页面的输入,计算出一个 double[] 作为返回值的结果,然后调用这个 API。
往往无法预先知道这个 double[] 数组的大小,就不能直接定义一个 double[] 的变量,只能借助 List,先将数据放入 List, 再转换为 double[] 数组。这个很简单,一个 for 循环就搞定了,但是使用 java 8 的 stream 特性就能让代码更优雅些。下面是我程序中的例子:
- 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<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收集器,代码:
- String[] arrays = new String[]{"a", "b", "c"};
- 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中新增的内容):
- String[] arrays = new String[]{"a", "b", "c"};
- List<String> listStrings = Arrays.asList(arrays);
String[] arrays = new String[]{"a", "b", "c"}; List<String> listStrings = Arrays.asList(arrays);
转换List为数组
1. 使用Stream:
- String[] ss = listStrings.stream().toArray(String[]::new);
String[] ss = listStrings.stream().toArray(String[]::new);
2. 使用List中的toArray()方法
- String[] sss = listStrings.toArray(new String[listStrings.size()]);
相关推荐
- **Array转Set**: 你可以先将Array转换为List,然后再转换为Set: ```java String[] array = ...; List<String> list = Arrays.asList(array); Set<String> set = new HashSet(list); ``` 4. **注意事项** ...
总结,Java中Array和List之间的转换主要依赖于Arrays类的asList()方法、ArrayList的toArray()方法以及Java 8引入的Stream API。理解这些转换方式及其适用场景,能够帮助我们在编程中更灵活地处理数据结构,提高代码...
在 Java 中,将 List 转换为 Array 可以使用 toArray() 方法,例如: ```java List<String> list = new ArrayList(); list.add("China"); list.add("Switzerland"); list.add("Italy"); list.add("France"); String...
在Java编程中,XML...通过以上步骤,我们可以方便地在Java中实现XML到指定类型List的转换,同时支持多层数据结构的处理。在实际开发中,根据具体需求调整模型类和转换方法,可以灵活应对各种XML数据结构的处理。
Java提供了强大的标准库支持,可以方便地完成数组到列表的转换。具体实现方式如下: ```java import java.util.Arrays; import java.util.List; public class ArrayToList { public static void main(String[] ...
在Java编程语言中,经常需要将`List<String>`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应某些方法的要求。本文将详细探讨这一转换过程,并通过几个具体的示例来帮助理解。 #### 一、基础...
本文将详细介绍如何在Java中将List转换为Array,以及Array转换为List。 首先,我们来看如何将List转换为Array。在Java中,List接口提供了一个`toArray(T[] array)`方法,用于将List转换为指定类型的数组。这个方法...
- **数据丢失**:当从Array转换到Set时,如果Array中有重复元素,Set会自动去除重复,因为Set不允许重复元素。 - **类型安全**:在进行转换时,确保源类型和目标类型匹配,否则可能会出现ClassCastException。 - ...
在实际开发过程中,我们经常会遇到需要将列表(List)中的元素转换为数组(Array)的情况。例如,在处理HTTP请求响应、数据库查询结果或者文件I/O操作时,将数据从一种形式转换为另一种形式是非常常见的需求。`List...
下面将深入探讨如何在Java中实现对象数组向JSON的转换,并反过来将JSON字符串转换为Java对象数组,同时也会提及一些相关技术和代码示例。 ### Java对象数组转JSON 首先,我们来看如何将一个Java对象数组转换成JSON...
在处理JSON时,我们有时需要将JSON字符串转换为Java中的各种数据类型,如List、Array、Map和自定义对象。本文将详细介绍如何进行这些转换,并提供一个封装好的转换方法和示例。 1. **String to List** JSON字符串...
List 可以使用 toArray() 方法转换为 Array,Array 可以使用 Arrays.asList() 方法转换为 List,由于 Arrays.asList() 方法返回的是固定的 List,可以使用 new ArrayList(Arrays.asList(array)) 方法来创建一个可扩...
- 如果需要转换的是一个List或者数组,可以使用`JSONArray.fromObject(list)`或`JSONArray.fromObject(array)`。 5. **最佳实践**: - 在实际开发中,为了保证代码的可读性和可维护性,建议在转换前先对Java对象...
Java 数组转换为 List 是 Java 编程中一个常见的操作。List 是 Java 中的一种集合类型,用于存储多个元素,而数组是固定长度的元素集合。将数组转换为 List 可以提供更多的灵活性和便捷性。在本文中,我们将介绍两种...
在 Java 中,将数组转换为 List 是一个常见的操作。下面将详细介绍四种常用的方法,以便更好地理解和应用。 方法 1:使用 Arrays 类的 asList() 方法 使用 Arrays 类的 asList() 方法可以将数组转换为 List。该...
可以使用toArray()方法将List转换为Array,也可以使用Arrays.asList()方法将Array转换为List。需要注意的是,Arrays.asList()方法返回的List是固定的,不可以添加或删除元素。如果需要添加或删除元素,可以使用new ...
- 使用反射机制获取Java Bean的属性描述信息时,需要确保Bean对象遵循Java Bean规范,否则可能会导致转换失败。 - 在处理大量数据时,需要考虑性能优化问题,例如可以采用StringBuilder来构建JSON字符串,而不是频繁...
**从Array转换到Collection** 1. **Arrays.asList()**: 这是将数组转换为`List`的最简单方式。例如: ```java String[] array = {"a", "b", "c"}; List<String> list = Arrays.asList(array); ``` 注意,这种...
Java的`toArray()`方法可以实现List到数组的转换。 5. **设置参数**: 使用`CallableStatement`的`setObject()`方法为每个参数设置值,参数位置通常从1开始计数。对于List,需要遍历数组并逐个设置。 6. **执行...
- Array转List:可以使用`Arrays.asList(array)`将数组转换为List,但这个List是固定大小的,不支持add操作。 - List转Array:通过List的`toArray()`方法可以将其转换为数组,如果需要指定类型的数组,可以使用`...