static <K, V> ImmutableSortedMap<K, V> fromEntries( Comparator<? super K> comparator, boolean sameComparator, int size, Entry<K, V>... entries) { for (int i = 0; i < size; i++) { Entry<K, V> entry = entries[i]; entries[i] = entryOf(entry.getKey(), entry.getValue()); } if (!sameComparator) { sortEntries(comparator, size, entries); validateEntries(size, entries, comparator); } return fromSortedEntries(comparator, size, entries); }
private static <K, V> ImmutableSortedMap<K, V> copyOfInternal( Map<? extends K, ? extends V> map, Comparator<? super K> comparator) { boolean sameComparator = false; if (map instanceof SortedMap) { SortedMap<?, ?> sortedMap = (SortedMap<?, ?>) map; Comparator<?> comparator2 = sortedMap.comparator(); sameComparator = (comparator2 == null) ? comparator == NATURAL_ORDER : comparator.equals(comparator2); } if (sameComparator && (map instanceof ImmutableSortedMap)) { // TODO: Prove that this cast is safe, even though // Collections.unmodifiableSortedMap requires the same key type. @SuppressWarnings("unchecked") ImmutableSortedMap<K, V> kvMap = (ImmutableSortedMap<K, V>) map; return kvMap; } // Using List to support concurrent map whose size changes List<Entry<?, ?>> list = Lists.newArrayListWithCapacity(map.size()); for (Entry<? extends K, ? extends V> entry : map.entrySet()) { list.add(entryOf(entry.getKey(), entry.getValue())); } Entry<?, ?>[] entryArray = list.toArray(new Entry<?, ?>[list.size()]); if (!sameComparator) { sortEntries(entryArray, comparator); validateEntries(entryArray, comparator); } return new ImmutableSortedMap<K, V>(entryArray, comparator); }
static <K, V> ImmutableSortedMap<K, V> fromEntries( Comparator<? super K> comparator, boolean sameComparator, int size, Entry<K, V>... entries) { for (int i = 0; i < size; i++) { Entry<K, V> entry = entries[i]; entries[i] = entryOf(entry.getKey(), entry.getValue()); } if (!sameComparator) { sortEntries(comparator, size, entries); validateEntries(size, entries, comparator); } return fromSortedEntries(comparator, size, entries); }
static <K, V> ImmutableSortedMap<K, V> fromEntries( Comparator<? super K> comparator, boolean sameComparator, int size, Entry<K, V>... entries) { for (int i = 0; i < size; i++) { Entry<K, V> entry = entries[i]; entries[i] = entryOf(entry.getKey(), entry.getValue()); } if (!sameComparator) { sortEntries(comparator, size, entries); validateEntries(size, entries, comparator); } return fromSortedEntries(comparator, size, entries); }
static <K, V> ImmutableSortedMap<K, V> fromEntries( Comparator<? super K> comparator, boolean sameComparator, int size, Entry<K, V>... entries) { for (int i = 0; i < size; i++) { Entry<K, V> entry = entries[i]; entries[i] = entryOf(entry.getKey(), entry.getValue()); } if (!sameComparator) { sortEntries(comparator, size, entries); validateEntries(size, entries, comparator); } return fromSortedEntries(comparator, size, entries); }
static <K, V> ImmutableSortedMap<K, V> fromEntries( Comparator<? super K> comparator, boolean sameComparator, int size, Entry<K, V>... entries) { for (int i = 0; i < size; i++) { Entry<K, V> entry = entries[i]; entries[i] = entryOf(entry.getKey(), entry.getValue()); } if (!sameComparator) { sortEntries(comparator, size, entries); validateEntries(size, entries, comparator); } return fromSortedEntries(comparator, size, entries); }
static <K, V> ImmutableSortedMap<K, V> fromEntries( Comparator<? super K> comparator, boolean sameComparator, int size, Entry<K, V>... entries) { for (int i = 0; i < size; i++) { Entry<K, V> entry = entries[i]; entries[i] = entryOf(entry.getKey(), entry.getValue()); } if (!sameComparator) { sortEntries(comparator, size, entries); validateEntries(size, entries, comparator); } return fromSortedEntries(comparator, size, entries); }
private static <K, V> ImmutableSortedMap<K, V> copyOfInternal( Map<? extends K, ? extends V> map, Comparator<? super K> comparator) { boolean sameComparator = false; if (map instanceof SortedMap) { SortedMap<?, ?> sortedMap = (SortedMap<?, ?>) map; Comparator<?> comparator2 = sortedMap.comparator(); sameComparator = (comparator2 == null) ? comparator == NATURAL_ORDER : comparator.equals(comparator2); } if (sameComparator && (map instanceof ImmutableSortedMap)) { // TODO: Prove that this cast is safe, even though // Collections.unmodifiableSortedMap requires the same key type. @SuppressWarnings("unchecked") ImmutableSortedMap<K, V> kvMap = (ImmutableSortedMap<K, V>) map; return kvMap; } // Using List to support concurrent map whose size changes List<Entry<?, ?>> list = Lists.newArrayListWithCapacity(map.size()); for (Entry<? extends K, ? extends V> entry : map.entrySet()) { list.add(entryOf(entry.getKey(), entry.getValue())); } Entry<?, ?>[] entryArray = list.toArray(new Entry<?, ?>[list.size()]); if (!sameComparator) { sortEntries(entryArray, comparator); validateEntries(entryArray, comparator); } return new ImmutableSortedMap<K, V>(entryArray, comparator); }
private static <K, V> ImmutableSortedMap<K, V> copyOfInternal( Map<? extends K, ? extends V> map, Comparator<? super K> comparator) { boolean sameComparator = false; if (map instanceof SortedMap) { SortedMap<?, ?> sortedMap = (SortedMap<?, ?>) map; Comparator<?> comparator2 = sortedMap.comparator(); sameComparator = (comparator2 == null) ? comparator == NATURAL_ORDER : comparator.equals(comparator2); } if (sameComparator && (map instanceof ImmutableSortedMap)) { // TODO: Prove that this cast is safe, even though // Collections.unmodifiableSortedMap requires the same key type. @SuppressWarnings("unchecked") ImmutableSortedMap<K, V> kvMap = (ImmutableSortedMap<K, V>) map; return kvMap; } // Using List to support concurrent map whose size changes List<Entry<?, ?>> list = Lists.newArrayListWithCapacity(map.size()); for (Entry<? extends K, ? extends V> entry : map.entrySet()) { list.add(entryOf(entry.getKey(), entry.getValue())); } Entry<?, ?>[] entryArray = list.toArray(new Entry<?, ?>[list.size()]); if (!sameComparator) { sortEntries(entryArray, comparator); validateEntries(entryArray, comparator); } return new ImmutableSortedMap<K, V>(entryArray, comparator); }
sortEntries(list, comparator); validateEntries(list, comparator);
sortEntries(list, comparator); validateEntries(list, comparator);
sortEntries(list, comparator); validateEntries(list, comparator);