Java all determine elements are same in a list

Using the Stream API (Java 8+)

boolean allEqual = list.stream().distinct().limit(2).count() <= 1

or

boolean allEqual = list.isEmpty() || list.stream().allMatch(list.get(0)::equals);

Using a Set:

boolean allEqual = new HashSet<String>(tempList).size() <= 1;

Using a loop:

boolean allEqual = true;
for (String s : list) {
    if(!s.equals(list.get(0)))
        allEqual = false;
}

Issues with OP’s code

Two issues with your code:

  • Since you’re comparing Strings you should use !templist.get(i).equals(first) instead of !=.

  • You have return true; while it should be return flag;

Apart from that, your algorithm is sound, but you could get away without the flag by doing:

String first = templist.get(0);
for (int i = 1; i < templist.size(); i++) {
    if(!templist.get(i).equals(first))
        return false;
}
return true;

Or even

String first = templist.get(0);
for (String s : templist) {
    if(!s.equals(first))
        return false;
}
return true;

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)