@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; } }
private Map<K, ValueHolder<V>> getkValueHolderMap(Ehcache.PutAllFunction<K, V> remappingFunction, Set<K> successes, Map<K, Exception> failures) throws StoreAccessException { Map<K, V> entriesToRemap = CollectionUtil.copyMapButFailOnNull(putAllFunction.getEntriesToRemap()); int size = CollectionUtil.findBestCollectionSize(entries1, 1); Map<K, V> mutations = new LinkedHashMap<>(size);
@Override public void doPutAll(final Map<? extends K, ? extends V> entries) throws StoreAccessException { // Copy all entries to write into a Map Map<K, V> entriesToRemap = CollectionUtil.copyMapButFailOnNull(entries); PutAllFunction<K, V> putAllFunction = new PutAllFunction<>(logger, entriesToRemap, runtimeConfiguration.getExpiryPolicy()); store.bulkCompute(entries.keySet(), putAllFunction); addBulkMethodEntriesCount(BulkOps.PUT_ALL, putAllFunction.getActualPutCount().get()); addBulkMethodEntriesCount(BulkOps.UPDATE_ALL, putAllFunction.getActualUpdateCount().get()); }
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); }
@Test public void findBestCollectionSize_sizeable() { int size = CollectionUtil.findBestCollectionSize(Arrays.asList(1, 2 ,3), 100); assertThat(size).isEqualTo(3); }
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_empty() { int size = CollectionUtil.findBestCollectionSize(Collections.emptySet(), 100); assertThat(size).isZero(); }