在速度方面,过滤Java Collection的最佳方法是什么?

时间:2015-08-01 13:47:04

标签: java performance collections

我的场景

过滤Java Collection这样的常见场景,我正在寻找最好的方法。在StackOverflow中进行一些搜索之后,我只能看到特定集合过滤方法的推荐,而无需对速度进行统计比较。 Somebody recommended Predicate Some recommended lambdaj

我想看看是否有人研究过这个问题。因此,问题是:“在可读性和速度方面,过滤Java Collection的最佳方法是什么?”

范围

我想知道网络上一些非凡方法的研究结果,它们是:(如果你有另一个(更好的)选择,请随时编辑我的问题)

  1. 循环播放时
  2. CollectionUtils Predicate
  3. lambdaj
  4. CQEngine
  5. 可能的绩效研究细节

    我们可以假设存在一个需要0.05秒执行的WS调用。我们可以拨打它100次。

    getSomething() // 0.05 seconds to execute
    

    然后我们可以比较他们在

    等场景中的表现
    1. 单个结果性能(假设某些条件只返回一个结果。找到对象后,退出搜索) 1.1。最佳案例场景1.2最差案例场景1.3平均案例场景

    2. 多个结果表现(假设有一个集合返回,可能会有多个结果)

    3. 感谢您的回答!

1 个答案:

答案 0 :(得分:1)

对于大多数用途,足以假设所有不同的方式具有大致相同的性能(O(n)),因此这不是经常研究的东西。

如果您想找到“最佳”的方法,您应该对一些不同对象的大型集合进行自己的性能测试。如果您发现性能有任何显着差异,可以在此处发布。