【问题标题】:Perform action on collection elements combination对集合元素组合执行操作
【发布时间】:2013-11-21 12:53:50
【问题描述】:

我有以下内容(overlapsWith 自定义实现用于比较自定义元素):

for (int i = 0; i < elements.size(); i++) {
     for (int j = i+1; j < elements.size(); j++) {
        if(elements.get(i).overlapsWith(elements.get(j))){ 
             // do something
        }
     }
 }

我可以在不使用旧的 java 循环的情况下以更正确的方式做到这一点吗?

【问题讨论】:

  • 如果你在集合中的元素类型是Number,你可以先排序,然后循环集合检查等价。我认为不使用循环就无法检查。
  • 您能否缩小您的问题范围?,您想以简单的方式还是以有效(性能)的方式进行此循环迭代?
  • 我只是想以有效的方式避免旧的 java 循环。谢谢。
  • “旧的 java 循环”有什么问题?

标签: java collections


【解决方案1】:

如果你想将每个元素与其他元素进行比较,没有两个循环就无法完成。唯一的性能改进是利用对称性,您已经这样做了(通过设置j = i+1)。

不幸的是,没有更好的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多