我在字符串数组中有名称:
["foo", "bar", "baz"]
我想将其转换为:
["foo", "foo", "bar", "bar", "baz", "baz"]
我当前的解决方案:
String[] ns = new String[2 * names.length];
int i = 0;
for (String name : names)
{
ns[i++] = name;
ns[i++] = name;
}
有没有更清洁的解决方案?特别是,我认为重复的分配工作做得不好。
最佳答案
假设您使用的是Java 8+,则可以将每个元素使用Stream
-flatMap
转换为两个元素流,然后在转换回数组之前将其收集为List
。喜欢,
String[] names = { "foo", "bar", "baz" };
String[] ns = Stream.of(names).flatMap(s -> Stream.of(s, s))
.collect(Collectors.toList()).toArray(new String[] {});
关于java - 转换数组以包含每个项目的重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43806799/