gpt4 book ai didi

Java 列表对象而不是数组

转载 作者:行者123 更新时间:2023-12-01 07:51:15 24 4
gpt4 key购买 nike

我有一个像这样的 Java map :

Map<String, Object> data = new HashMap<String, Object>();

我正在对其执行以下操作:

data.put("case_ids", new int[] { 31527 });

其中 case_ids 是第 3 方 API 的属性之一。但是,该 API 会抛出不正确的 API 请求错误,并建议我使用 List 对象而不是 Array 来执行以下操作:

data.put("case_ids", new int[] { 31527 });

不是List专家,有什么建议吗?就像 data.put("case_ids", new List[] { 31527 });

已编辑:扩展我当前的问题(以避免重新发布或类似问题)。如果我有大量用于上述放置操作的值并且想要创建已知值的列表,该怎么办?我认为提及用逗号分隔的值列表(例如 31527、31528、31529、31530、31531 等)不是正确的方法。我宁愿将其存储在某个地方,然后将其称为此处的输入 - data.put("case_ids", new int[] { input });。另外,没有文件可以做到吗?只是想避免对文件的依赖。

最佳答案

从已知值创建列表的最简单方法可能是

Arrays.asList(31527)

这会让你打电话

data.put("case_ids", Arrays.asList(31527));

假设 API 接受 List作为值。如果没有 API 文档或错误消息,我们无法判断它真正接受什么。

还有其他方式创建List,如new ArrayList<>()等等,只需查看 javadoc以及实现 List 的具体类界面。

<小时/>

更新:如果您不需要外部文件,我想您可以在源代码中包含这些数字。最简单的选择是将它们作为静态字段放在某处

public static final int[] VALUES = {1, 2, 3, /*...*/};

你可以把它变成List (在 Java 8 中)与 Arrays.stream(VALUES).boxed().collect(Collectors.toList()) (参见here)。

我建议使用Guava library相反,您可以直接使用

创建更安全的不可变列表
public static final List<Integer> VALUES = ImmutableList.of(1, 2, 3) 

如果您不喜欢像这样在代码中包含所有值,那么您可以从资源文件中读取它们,但这将是另一个问题。

关于Java 列表对象而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37173477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com