Ответ 1
Использование Stream API (Java 8+)
boolean allEqual = list.stream().distinct().limit(2).count() <= 1
или
boolean allEqual = list.isEmpty() || list.stream().allMatch(list.get(0)::equals);
Использование Set
:
boolean allEqual = new HashSet<String>(tempList).size() <= 1;
Использование цикла:
boolean allEqual = true;
for (String s : list) {
if(!s.equals(list.get(0)))
allEqual = false;
}
Проблемы с кодом OP
Две проблемы с кодом:
-
Поскольку вы сравниваете
String
вы должны использовать!templist.get(i).equals(first)
вместо!=
. -
Вы
return true;
в то время как это должен бытьreturn flag;
Кроме того, ваш алгоритм звучит, но вы можете уйти без flag
, выполнив:
String first = templist.get(0);
for (int i = 1; i < templist.size(); i++) {
if(!templist.get(i).equals(first))
return false;
}
return true;
Или даже
String first = templist.get(0);
for (String s : templist) {
if(!s.equals(first))
return false;
}
return true;