private List<EnvironmentStatus> getEnvironmentStatus( List<ApplicationDeploymentHistoryItem> dataList) { List<EnvironmentStatus> returnList = new ArrayList<>(); Map<String, List<String>> tempStorage = new HashMap<String, List<String>>(); for (ApplicationDeploymentHistoryItem data : dataList) { List<String> machineIds = null; if (!tempStorage.containsKey(data.getApplicationId())) { machineIds = new ArrayList<>(); tempStorage.put(data.getApplicationId(), machineIds); } else { machineIds = tempStorage.get(data.getApplicationId()); } for (Machine machine : data.getMachines()) { if (!machineIds.contains(machine.getMachineId())) { EnvironmentStatus status = new EnvironmentStatus(); status.setCollectorItemId(data.getCollectorItemId()); status.setComponentID(data.getApplicationId()); status.setComponentName(data.getApplicationName()); status.setEnvironmentName(data.getEnvironmentName()); status.setOnline(machine.isStatus()); // for testing status.setResourceName(machine.getMachineName()); // for testing status.setHostname(machine.getHostName()); returnList.add(status); machineIds.add(machine.getMachineId()); } } } return returnList; }