Это ограничение в java-7, оператор <>
не поддерживается для анонимных классов
Выражения создания экземпляра класса
ЭтоОшибка во время компиляции, если выражение создания экземпляра класса объявляет анонимный класс, используя форму "<>" для аргументов типа класса.
Но из jdk-9 <>
операторы поддерживаются для анонимных классов
Что нового для языка Java в JDK 9
Разрешить ромб с анонимными классами, если тип аргумента выведенного типа является denotable.
Таким образом, чтобы решить эту проблему, либо обновите Java 7 до Java 9, либо просто определите общие параметры, такие как второй подход в вашем примере
Comparator<Map.Entry<Double, PureColor>> colorComparator = new Comparator<Map.Entry<Double, PureColor>>()