CircuitID Department Hours
--------------------------------
Circuit A Electricity 60
Circuit A Hydel 70
Circuit B Hydel 30
Circuit C Electricity 40
Circuit B Electricity 80
Circuit C Hydel 50
Circuit A Electricity 70
Теперь мне нужно создать один список, в котором будут записи по следующим критериям:
- В каждом идентификаторе цепи мне нужно получить запись с наибольшим количеством часов, но при наличии дублированных часов, чеммне нужно взять один с отделом электричества.
Результат для вышеупомянутого результата должен быть как ниже:
Circuit A Electricity 70
Circuit B Electricity 80
Circuit C Hydel 50
Дайте мне знать, как я могу выполнять итерацию эффективно и наиболее эффективноспособ получить окончательный список, используя java 8 / java.
Код, который я написал, работает не совсем идеально, и мой подход был показан ниже:
for (int i = 0; i < circuitList.size(); i++) {
for (int j = 0; j < circuitList.size(); {
if (circuitList.get(i).getCircuitId().equals(circuitList.get(j).getCircuitId()) && i != j) {
if (circuitList().get(i).getHours() == circuitList().get(j).getHours()) {
if (circuitList().get(i).getDepartment().equals(“Electricity”) {
newList.add(circuitList().get(i));
}
// some more conditions on getHours
Класс Circuit имеет объекты pojoс установщиками-получателями этих трех объектов.
public class Circuit {
String circuitID;
int hours;
String department;
}