【发布时间】:2017-05-26 01:33:21
【问题描述】:
我想知道在这种情况下我是否可以对我的双 for 循环进行多线程处理。 在第二个 for 循环中,如果某些条件完成,我将布尔值发送为 true 并且我 在第一个循环中使用此布尔值的结果。在这种情况下,多线程会破坏结果吗?如果不是,它会增加计算事件的速度吗?
这是我的代码:
ArrayList<Appartement> sorted = new ArrayList<>();
boolean ispresent = false;
for (Appartement p1: res2) {
ispresent = false;
for (Appartement p2: res2) {
if (p1.equals(p2))
continue;
if (!p1.ContainNull() && !p2.ContainNull()){
if (p1.getRoomCount().equals(p2.getRoomCount()) && p1.getPrice().equals(p2.getPrice()) && p1.getSurface().equals(p2.getSurface())
&& p1.getZipCode().equals(p2.getZipCode()) && p1.getNewBuild().equals(p2.getNewBuild())
&& p1.getPropertyType().equals(p2.getPropertyType()) && p1.getFurnished().equals(p2.getFurnished())
&& p1.getMarketingType().equals(p2.getMarketingType())) {
ispresent = true;
break;
}
}
}
if (!ispresent)
sorted.add(p1);
}
我希望能得到一些帮助。
【问题讨论】:
-
何不试试看呢?
-
您似乎只想构建一个包含所有唯一项目且没有重复项的列表。实际上,您可以使用 HashSet 在 O(n) 复杂度的情况下一次性完成,因此您当然不需要多个线程。
-
我正在解析一个 json 文件,当我尝试使用 HashSet 时,它会将我所有的公寓都放在那里,所以我尝试了这种方式。我的班级公寓很少有字符串值和整数。
标签: java multithreading for-loop