gpt4 book ai didi

java - 仅从 map 中提取相关键

转载 作者:行者123 更新时间:2023-12-02 10:27:00 25 4
gpt4 key购买 nike

我有一个 int arry 输入,例如:[1,3,4]。

我还有一个固定/恒定的 map :

1 -> A
2 -> B
3 -> C
4 -> D
5 -> E

我希望我的输出是所有相关键的对应字符串。

对于我们的输入 [1,3,4] 示例,输出应为:“A,C,D”。

实现这一目标的最有效方法是什么?

我的想法是每次迭代整个 map 。
问题是,我在 android 中有一个远程调用,它获取一长串数据项,并且对列表中的每个项目执行此操作似乎有点......效率低下。也许有更高效和/或更优雅的东西。也许使用模式

最佳答案

假设数组与HashMap一起定义如下:

int arr[] = { 1, 3, 4 };
HashMap<Integer, String> hmap = new HashMap<>();

// data in the map
hmap.put(1, "A"); hmap.put(2, "B"); hmap.put(3, "C"); hmap.put(4, "D"); hmap.put(5, "E");

您可以迭代数组,而不是迭代整个 map

String[] array = Arrays.stream(arr).mapToObj(i -> hmap.get(i))
.filter(Objects::nonNull)
.toArray(String[]::new);

这给出了输出:

A C D

<小时/>

根据您的评论,要将其作为一个字符串连接,您可以使用:

String str = Arrays.stream(arr).mapToObj(i -> hmap.get(i))
.filter(Objects::nonNull)
.collect(Collectors.joining("/"));

关于java - 仅从 map 中提取相关键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53880524/

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