У меня есть приложение, которое выполняет итерацию для создания точек на графике с течением времени.В то время как я собираю данные для каждой точки по оси X, я также должен выполнить рекурсивный поиск, что фактически означает, что у меня есть цикл внутри другого цикла.Это не слишком хорошо масштабируется.Я не вижу много примеров использования решения «разделяй и властвуй» на итерациях.Я думал об использовании среды параллелизма Java Executor для запуска каждого цикла в своем собственном потоке, ожидания ответов, сбора результатов и их возврата.Первые результаты теста, которые я получаю, не кажутся намного быстрее.Я знаю, что должен показать некоторый код, но сначала я хочу знать, есть ли у этого подхода преимущества по сравнению с лучшими методами, с которыми я, возможно, не знаком.Заранее спасибо!
Добавление некоторого groovyish / javaish псевдокода, чтобы помочь обдумать это:
class Car {
id
model
make
weight
}
for (number in listOfImportantCarIDs) {
Car car = carsMap.get(number) // find the car we care about
String maker = car.make //get it's 'parent'
// get amount of all related cars
Iterator<Car> allcars = carsMap.values().iterator();
while (allcars.hasNext()) {
Car aCar = alldocs.next();
if (maker.equals(aCar.make)) {
totalCarCount++; // increment total related cars
BigDecimal totalWeightofAllCars = totalWeightofAllCars.add(aCar.getWeight()); // add weight to total
// a ghetto cache to prevent double counting
countedMaufacturers.add(make);
}
}
}