@Override public Iterable<? extends Map.Entry<? extends K, ? extends V>> apply(final Iterable<? extends K> keys) { int size = CollectionUtil.findBestCollectionSize(keys, 1); // in our current implementation, we have one entry all the time List<Map.Entry<K, V>> computeResult = new ArrayList<>(size); for (K key : keys) { computeResult.add(new AbstractMap.SimpleImmutableEntry<>(key, null)); } return computeResult; } }
Set<K> unknowns = cacheLoaderWriterDeleteAllCall(entries, entriesToRemove, deleteSuccesses, deleteFailures); int size = CollectionUtil.findBestCollectionSize(entries, 1); Map<K, V> results = new LinkedHashMap<>(size);
@Test public void findBestCollectionSize_notSizeable() { int size = CollectionUtil.findBestCollectionSize(() -> null, 100); assertThat(size).isEqualTo(100); } }
@Test public void findBestCollectionSize_singleton() { int size = CollectionUtil.findBestCollectionSize(Collections.singleton(1), 100); assertThat(size).isEqualTo(1); }
int size = CollectionUtil.findBestCollectionSize(keys1, 1); // this function is actually called with one key at the time Map<K, V> computeResult = new LinkedHashMap<>(size);
@Test public void findBestCollectionSize_sizeable() { int size = CollectionUtil.findBestCollectionSize(Arrays.asList(1, 2 ,3), 100); assertThat(size).isEqualTo(3); }
int size = CollectionUtil.findBestCollectionSize(entries1, 1); Map<K, V> mutations = new LinkedHashMap<>(size);
@Test public void findBestCollectionSize_empty() { int size = CollectionUtil.findBestCollectionSize(Collections.emptySet(), 100); assertThat(size).isZero(); }