С исходным списком вы можете просто использовать потоковый API, как этот.
Это предполагает, что ваш список ответов не является нулевым и не содержит нулевых значений.
List<String> response = ... // {"ON", "OFF", "ON", "ON", "OFF"}
Для Java 8 +:
List<Boolean> booleanList = response.stream()
.map(s -> "ON".equalsIgnoreCase(s.trim()))
.collect(Collectors.toList());
// booleanList == {true, false, true, true, false}
Для предварительной Java 8:
List<Boolean> booleanList = new ArrayList<>();
for(String s : response){
booleanList.add("ON".equalsIgnoreCase(s.trim()));
}
IПодумайте, что в итоге проблема заключалась в том, что ваш входной список не имел точных значений "ON"
или "OFF"
, у них могли быть пробелы вокруг них, так что s.trim().equals("ON")
или s.contains("ON")
обходит это.Также вам не нужно было иметь if-else
, поскольку вы можете просто добавить результат логического выражения в ваш логический список напрямую.