我试图找到最好的方法来转换列表的整数到JSONArray的org.json.JSONArray库API调用。
鉴于
List<Integer> ids = new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(3);
需要JSONArray对象
JSONArray ids = [1,2,3]
在Java中使用stream()方法。
您可以将可变约简与collect()
一起使用。
请注意,只有当您需要在此过程中过滤或更改一些值时,才可以合理使用流,否则这将是代码不必要的复杂性。
List<String> source = List.of("1", "2", "3");
JSONArray result =
source.stream()
.map(str -> str.concat(".0"))
.collect(
JSONArray::new,
JSONArray::put,
JSONArray::putAll);
System.out.println(result);
输出
["1.0","2.0","3.0"]
**朴素的解决方案:*朴素的解决方案是迭代给定的集合,并逐个复制整数数组中遇到的每个元素。
Set<Integer> set = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Integer[] array = new Integer[set.size()];
int k = 0;
for (Integer i: set) {
array[k++] = i;
}
System.out.println(Arrays.toString(array));
**使用Set。toArray()方法:**Set接口提供toArray()方法,该方法返回包含集合元素的对象数组。
Set<Integer> set = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Object[] array = set.toArray();
System.out.println(Arrays.toString(array));
通过使用JSONArray
类的构造函数,无需使用流就可以轻松地完成这项工作,该类接受集合
:
List<Integer> ids = List.of(1, 2, 3);
JSONArray json = new JSONArray(ids);
如果出于某种原因必须使用流:
List<Integer> ids = List.of(1, 2, 3);
JSONArray json = new JSONArray();
ids.stream().forEach(json::put);
问题内容: 在我的Android项目中,我试图将收到的JSONArray转换为List。借助这个SO答案,我走得更远。我现在有以下代码: 不幸的是,它在最后一行抱怨Gson类型的fromJson(String,Type)方法不适用于参数(JSONArray,Type)。我真的不知道该怎么解决。 有人知道我该怎么解决吗? 问题答案: 如果您在此处看到答案,您会注意到该方法中的第一个参数是(json对
我有列表: 如何转换列表 需要更换: 对象具有构造函数: 我试过这个: 但这对我不起作用。我得到错误: 我认为lambda参数是数组的点[],但不是。
我从FireStore的一个字段中访问值,但它是一个列表形式,我需要将其转换为一个流
我有我想分批处理的编号列表。
问题内容: 如何转换成? 当然,除了循环地逐项执行之外,我对任何其他答案都感兴趣。但是,如果没有其他答案,我将选择一个作为最佳答案,以证明此功能不是Java的一部分。 问题答案: 没有捷径可转换为因为它不会处理拳击,只会创建你不想要的。你必须制作一个实用程序方法。
问题内容: 将a转换为a 的最佳方法是什么?只是迭代所有值并将它们插入列表中,还是我忽略了某些内容? 问题答案: 假设: