首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JAVA中将字符串分解为无循环的长整型数组或长整型列表

在JAVA中将字符串分解为无循环的长整型数组或长整型列表
EN

Stack Overflow用户
提问于 2012-04-03 21:22:35
回答 6查看 22.4K关注 0票数 5

我想把字符串数组分解成长数组或列表。我不想使用循环。

有没有什么Java方法可以做到这一点。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-03 21:27:34

没有O(1)操作可以将String[] (带有数字字符串)“转换”为long[]。如果循环在第三方方法中可见或隐藏,它将始终为O(n)。

如果您不想“看到”循环,只需实现一个方法

代码语言:javascript
运行
复制
Long[] pseudoOneStepConversion(numbers);

并实现

代码语言:javascript
运行
复制
privat Long[] pseudoOneStepConversion(String[] numbers) {
  Long[] result = new long[numbers.length];
  for (int i = 0; i < numbers.length; i++)
     result[i] = Long.parseLong(numbers[i]);
  return result;
}

我们也可以递归-它仍然是O(n),性能较差,看起来不像一个循环:

代码语言:javascript
运行
复制
public static void main(String[] args) {
    List<Long> target = new ArrayList<Long>();
    copy(new String[]{"1", "2", "3"}, target, 0);
    System.out.println(target);
}

private static void copy(String[] source, List<Long> target, int index) {
    if (index == source.length)
        return;
    target.add(Long.parseLong(source[index]));
    copy(source, target, index+1);
}

注-因为我开始对递归示例投下反对票:它纯粹是学术上的,并没有集成到生产代码中使用--认为,这是很清楚的;)

票数 9
EN

Stack Overflow用户

发布于 2014-08-14 17:11:29

使用Guava库简化的Eugene答案。从芭乐16.0开始。

代码语言:javascript
运行
复制
List<Long> longList = Lists.transform(Arrays.asList(stringArray), Longs.stringConverter());

更新:使用Java8的解决方案,没有第三方库:

代码语言:javascript
运行
复制
List<Long> longList = Stream.of(stringArray).map(Long::valueOf).collect(Collectors.toList());
票数 11
EN

Stack Overflow用户

发布于 2012-04-03 21:31:23

借助3rd party libraries的一些帮助,您可以避免在自己的代码中编写循环,但在引擎盖下的某个地方会有一个循环。例如:

代码语言:javascript
运行
复制
List<String> stringList = Arrays.asList(stringArray);
List<Long> longList = Lists.transform(stringList, new Function<String, Long>() {
   public Long apply(String s) {
      return Long.valueOf(s);
   }
});

ListsFunction来自Guava库。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9994180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档