我有一个用例,我刮一些数据,对于一些记录,一些键有多个值.我想要的最终输出是CSV,我有一个库,它需要一个二维数组.
所以我的输入结构看起来像List<TreeMap<String, List<String>>>(我TreeMap用来确保稳定的键顺序),我的输出需要String[][].
我编写了一个通用转换,它根据所有记录中的最大值计算每个键的列数,并为小于最大值的记录留下空单元格,但结果比预期的更复杂.
我的问题是:它可以用更简洁/有效(但仍然是通用的)方式编写吗?特别是使用Java 8流/ lambdas等?
样本数据和我的算法如下所示(尚未测试样本数据):
package org.example.import;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<TreeMap<String, List<String>>> rows = new ArrayList<>();
TreeMap<String, List<String>> row1 = new TreeMap<>();
row1.put("Title", Arrays.asList("Product 1"));
row1.put("Category", Arrays.asList("Wireless", "Sensor"));
row1.put("Price",Arrays.asList("20"));
rows.add(row1);
TreeMap<String, List<String>> row2 = new TreeMap<>();
row2.put("Title", Arrays.asList("Product 2"));
row2.put("Category", Arrays.asList("Sensor"));
row2.put("Price",Arrays.asList("35"));
rows.add(row2);
TreeMap<String, List<String>> row3 = new TreeMap<>();
row3.put("Title", Arrays.asList("Product 3"));
row3.put("Price",Arrays.asList("15"));
rows.add(row3);
System.out.println("Input:");
System.out.println(rows);
System.out.println("Output:");
System.out.println(Arrays.deepToString(multiValueListsToArray(rows)));
}
public …Run Code Online (Sandbox Code Playgroud) 从 XSLT/XPath 3.0 中的映射构建 URL 查询字符串的最易读的方法是什么{ 'param': 'value' }?
我在 Windows 10 上使用WSL2(适用于 Linux 的 Windows 子系统) Ubuntu 18.04。我还使用 NetBeans 12.1。
如何使用 NetBeans 打开位于 WSL 文件系统上的项目?在 Windows 资源管理器中,文件系统可通过 访问\\wsl$,但如何让 NetBeans 打开该文件系统?
algorithm ×1
facebook ×1
java ×1
java-8 ×1
namespaces ×1
netbeans ×1
netbeans-12 ×1
windows-subsystem-for-linux ×1
wsl-2 ×1
xpath ×1
xpath-3.0 ×1
xslt-3.0 ×1