How to sort Arraylist of objects

Source : Here

You can use Collections.sort with a custom Comparator<Team>.

    class Team {
        public final int points;
        // ...
    };

    List<Team> players = // ...

    Collections.sort(players, new Comparator<Team>() {
        @Override public int compare(Team p1, Team p2) {
            return p1.points- p2.points;
        }

    });

Alternatively, you can make Team implementsComparable<Team>. This defines the natural ordering for all Team objects. Using a Comparator is more flexible in that different implementations can order by name, age, etc.

See also


For completeness, I should caution that the return o1.f - o2.f comparison-by-subtraction shortcut must be used with extreme caution due to possible overflows (read: Effective Java 2nd Edition: Item 12: Consider implementing Comparable). Presumably hockey isn’t a sport where a player can score goals in the amount that would cause problems =)

See also

Leave a Comment