我在字符串数组中有名称:
["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;
}有更清洁的解决方案吗?特别是,我认为重复的任务做得不好。
发布于 2017-05-05 13:57:29
假设您使用的是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[] {});发布于 2017-05-05 14:00:49
稍微干净一点,也许:
String[] ns = new String[2 * names.length];
for (int i = 0; i < ns.length; i++)
ns[i] = names[i / 2];https://stackoverflow.com/questions/43806799
复制相似问题