boolean (AbstractColorsScheme otherScheme, @Nullable Predicate<? super ColorKey> colorKeyFilter) { if (colorMap.size() != otherScheme.colorMap.size()) return false; for (Map.Entry<ColorKey, Color> entry : colorMap.entrySet()) { Color c1 = entry.getValue(); ColorKey key = entry.getKey(); Color c2 = otherScheme.colorMap.get(key); if (!colorsEqual(c1, c2)) return false; } return true; }