【问题标题】:Most efficient way to access variables in List<String> in Java在 Java 中访问 List<String> 中的变量的最有效方法
【发布时间】:2015-08-25 00:59:06
【问题描述】:

我有很多这样存储的数据

["5368","45946","532.3602831594635","8.559239940387481"]

我必须迭代。

访问这些变量的最有效方法是什么?

目前我正在反序列化为 List> 但是并访问 get(0).get(0) 或其他任何内容,但是在大量数据上速度很慢。

【问题讨论】:

  • 排序和搜索。
  • 是单向列表吗?
  • 只访问每个值。目前我正在反序列化为 List> 然而并访问 get(0).get(0) 或其他任何东西,但它在大量数据上很慢。
  • 什么样的List?如果是LinkedList,那么使用.get(n) 是线性运算,对于大型列表会很慢。您可以将基础类型更改为ArrayList,这是.get(n) 的常量时间,或者使用Iterator

标签: java


【解决方案1】:

Why would iterating over a List be faster than indexing through it? 可能重复 迭代很简单,但迭代时要做的事情与速度效率更相关。

【讨论】:

    【解决方案2】:

    使用 JAVA8 Stream 和并行 forEach 可能会更快。

        List<List<String>> list = new ArrayList<>();
        // .....
        list.stream().parallel()
            .forEach(sublist -> sublist.stream().parallel()
                 .forEach(element -> /* do something to element */));
    

    【讨论】:

      猜你喜欢
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2013-08-15
      相关资源
      最近更新 更多