SortedSet<String> () { if (ContainerUtil.isEmpty(myVendors)) { Map<String, Integer> vendorsCount = getVendorsCount(getInstalledDescriptors()); myVendors = new TreeSet<>((v1, v2) -> { int result = vendorsCount.get(v2) - vendorsCount.get(v1); return result == 0 ? v2.compareToIgnoreCase(v1) : result; }); myVendors.addAll(vendorsCount.keySet()); } return Collections.unmodifiableSortedSet(myVendors); }