com.google.common.cache.LocalCache.put()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(11.0k)|赞(0)|评价(0)|浏览(229)

本文整理了Java中com.google.common.cache.LocalCache.put()方法的一些代码示例,展示了LocalCache.put()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。LocalCache.put()方法的具体详情如下:
包路径:com.google.common.cache.LocalCache
类名称:LocalCache
方法名:put

LocalCache.put介绍

暂无

代码示例

代码示例来源:origin: google/guava

@Override
public void put(K key, V value) {
 localCache.put(key, value);
}

代码示例来源:origin: google/guava

public void testRemovalListener_replaced() {
 QueuingRemovalListener<Object, Object> listener = queuingRemovalListener();
 LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder().removalListener(listener));
 assertTrue(listener.isEmpty());
 Object one = new Object();
 Object two = new Object();
 Object three = new Object();
 Object four = new Object();
 Object five = new Object();
 Object six = new Object();
 map.put(one, two);
 map.put(one, three);
 assertNotified(listener, one, two, RemovalCause.REPLACED);
 Map<Object, Object> newMap = ImmutableMap.of(one, four);
 map.putAll(newMap);
 assertNotified(listener, one, three, RemovalCause.REPLACED);
 map.replace(one, five);
 assertNotified(listener, one, four, RemovalCause.REPLACED);
 map.replace(one, five, six);
 assertNotified(listener, one, five, RemovalCause.REPLACED);
}

代码示例来源:origin: google/j2objc

@Override
public V putIfAbsent(K key, V value) {
 checkNotNull(key);
 checkNotNull(value);
 int hash = hash(key);
 return segmentFor(hash).put(key, hash, value, true);
}

代码示例来源:origin: google/guava

@Override
public void putAll(Map<? extends K, ? extends V> m) {
 for (Entry<? extends K, ? extends V> e : m.entrySet()) {
  put(e.getKey(), e.getValue());
 }
}

代码示例来源:origin: google/guava

@Override
 protected Map<String, String> create(Entry<String, String>[] entries) {
  LocalCache<String, String> map = makeLocalCache(builder);
  for (Entry<String, String> entry : entries) {
   map.put(entry.getKey(), entry.getValue());
  }
  return map;
 }
}

代码示例来源:origin: google/guava

public void testSegmentPut_evict() {
 int maxSize = 10;
 LocalCache<Object, Object> map =
   makeLocalCache(createCacheBuilder().concurrencyLevel(1).maximumSize(maxSize));
 // manually add elements to avoid eviction
 int originalCount = 1024;
 LinkedHashMap<Object, Object> originalMap = Maps.newLinkedHashMap();
 for (int i = 0; i < originalCount; i++) {
  Object key = new Object();
  Object value = new Object();
  map.put(key, value);
  originalMap.put(key, value);
  if (i >= maxSize) {
   Iterator<Object> it = originalMap.keySet().iterator();
   it.next();
   it.remove();
  }
  assertEquals(originalMap, map);
 }
}

代码示例来源:origin: google/guava

public void testValues() {
 LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder());
 map.put("foo", "bar");
 map.put("baz", "bar");
 map.put("quux", "quux");
 assertFalse(map.values() instanceof Set);
 assertTrue(map.values().removeAll(ImmutableSet.of("bar")));
 assertEquals(1, map.size());
}

代码示例来源:origin: google/guava

public void testRemoveIfWithConcurrentModification() {
 LocalCache<Integer, Integer> map =
   makeLocalCache(createCacheBuilder().concurrencyLevel(1).initialCapacity(1));
 map.put(1, 1);
 map.put(2, 1);
 map.put(3, 1);
 map.entrySet()
   .removeIf(
     entry -> {
      if (entry.getValue().equals(1)) {
       map.put(entry.getKey(), 2);
       return true;
      } else {
       return false;
      }
     });
 assertEquals(3, map.size());
 assertFalse(map.containsValue(1));
}

代码示例来源:origin: google/guava

public void testRemoveIfWithConcurrentRemoval() {
 LocalCache<Integer, Integer> map =
   makeLocalCache(createCacheBuilder().concurrencyLevel(1).initialCapacity(1));
 map.put(0, 1);
 map.put(1, 1);
 map.put(2, 1);
 map.entrySet()
   .removeIf(
     entry -> {
      assertThat(entry.getValue()).isNotNull();
      map.remove((entry.getKey() + 1) % 3);
      return false;
     });
 assertEquals(1, map.size());
}

代码示例来源:origin: google/guava

public void testDrainRecencyQueueOnWrite() {
 for (CacheBuilder<Object, Object> builder : allEvictingMakers()) {
  LocalCache<Object, Object> map = makeLocalCache(builder.concurrencyLevel(1));
  Segment<Object, Object> segment = map.segments[0];
  if (segment.recencyQueue != DISCARDING_QUEUE) {
   Object keyOne = new Object();
   Object valueOne = new Object();
   Object keyTwo = new Object();
   Object valueTwo = new Object();
   map.put(keyOne, valueOne);
   assertTrue(segment.recencyQueue.isEmpty());
   for (int i = 0; i < DRAIN_THRESHOLD / 2; i++) {
    map.get(keyOne);
   }
   assertFalse(segment.recencyQueue.isEmpty());
   map.put(keyTwo, valueTwo);
   assertTrue(segment.recencyQueue.isEmpty());
  }
 }
}

代码示例来源:origin: google/guava

public void testRemovalListenerCheckedException() {
 final RuntimeException e = new RuntimeException();
 RemovalListener<Object, Object> listener =
   new RemovalListener<Object, Object>() {
    @Override
    public void onRemoval(RemovalNotification<Object, Object> notification) {
     throw e;
    }
   };
 CacheBuilder<Object, Object> builder = createCacheBuilder().removalListener(listener);
 final LocalCache<Object, Object> cache = makeLocalCache(builder);
 Object key = new Object();
 cache.put(key, new Object());
 checkNothingLogged();
 cache.remove(key);
 checkLogged(e);
}

代码示例来源:origin: google/guava

public void testRemovalListener_size() {
 QueuingRemovalListener<Object, Object> listener = queuingRemovalListener();
 LocalCache<Object, Object> map =
   makeLocalCache(
     createCacheBuilder().concurrencyLevel(1).maximumSize(2).removalListener(listener));
 assertTrue(listener.isEmpty());
 Object one = new Object();
 Object two = new Object();
 Object three = new Object();
 Object four = new Object();
 map.put(one, two);
 map.put(two, three);
 assertTrue(listener.isEmpty());
 map.put(three, four);
 assertNotified(listener, one, two, RemovalCause.SIZE);
 assertTrue(listener.isEmpty());
}

代码示例来源:origin: google/guava

public void testRemovalListener_expired() {
 FakeTicker ticker = new FakeTicker();
 QueuingRemovalListener<Object, Object> listener = queuingRemovalListener();
 LocalCache<Object, Object> map =
   makeLocalCache(
     createCacheBuilder()
       .concurrencyLevel(1)
       .expireAfterWrite(3, TimeUnit.NANOSECONDS)
       .ticker(ticker)
       .removalListener(listener));
 assertTrue(listener.isEmpty());
 Object one = new Object();
 Object two = new Object();
 Object three = new Object();
 Object four = new Object();
 Object five = new Object();
 map.put(one, two);
 ticker.advance(1);
 map.put(two, three);
 ticker.advance(1);
 map.put(three, four);
 assertTrue(listener.isEmpty());
 ticker.advance(1);
 map.put(four, five);
 assertNotified(listener, one, two, RemovalCause.EXPIRED);
 assertTrue(listener.isEmpty());
}

代码示例来源:origin: google/guava

public void testComputeExistingEntry() throws ExecutionException {
 CountingLoader loader = new CountingLoader();
 LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder());
 assertEquals(0, loader.getCount());
 Object key = new Object();
 Object value = new Object();
 map.put(key, value);
 assertEquals(value, map.get(key, loader));
 assertEquals(0, loader.getCount());
}

代码示例来源:origin: google/guava

public void testRemovalListener_collected() {
 QueuingRemovalListener<Object, Object> listener = queuingRemovalListener();
 LocalCache<Object, Object> map =
   makeLocalCache(
     createCacheBuilder().concurrencyLevel(1).softValues().removalListener(listener));
 Segment<Object, Object> segment = map.segments[0];
 assertTrue(listener.isEmpty());
 Object one = new Object();
 Object two = new Object();
 Object three = new Object();
 map.put(one, two);
 map.put(two, three);
 assertTrue(listener.isEmpty());
 int hash = map.hash(one);
 ReferenceEntry<Object, Object> entry = segment.getEntry(one, hash);
 map.reclaimValue(entry.getValueReference());
 assertNotified(listener, one, two, RemovalCause.COLLECTED);
 assertTrue(listener.isEmpty());
}

代码示例来源:origin: google/guava

public void testDrainKeyReferenceQueueOnWrite() {
 for (CacheBuilder<Object, Object> builder : allKeyValueStrengthMakers()) {
  LocalCache<Object, Object> map = makeLocalCache(builder.concurrencyLevel(1));
  if (map.usesKeyReferences()) {
   Segment<Object, Object> segment = map.segments[0];
   Object keyOne = new Object();
   int hashOne = map.hash(keyOne);
   Object valueOne = new Object();
   Object keyTwo = new Object();
   Object valueTwo = new Object();
   map.put(keyOne, valueOne);
   ReferenceEntry<Object, Object> entry = segment.getEntry(keyOne, hashOne);
   @SuppressWarnings("unchecked")
   Reference<Object> reference = (Reference) entry;
   reference.enqueue();
   map.put(keyTwo, valueTwo);
   assertFalse(map.containsKey(keyOne));
   assertFalse(map.containsValue(valueOne));
   assertNull(map.get(keyOne));
   assertEquals(1, map.size());
   assertNull(segment.keyReferenceQueue.poll());
  }
 }
}

代码示例来源:origin: google/guava

public void testDrainValueReferenceQueueOnWrite() {
 for (CacheBuilder<Object, Object> builder : allKeyValueStrengthMakers()) {
  LocalCache<Object, Object> map = makeLocalCache(builder.concurrencyLevel(1));
  if (map.usesValueReferences()) {
   Segment<Object, Object> segment = map.segments[0];
   Object keyOne = new Object();
   int hashOne = map.hash(keyOne);
   Object valueOne = new Object();
   Object keyTwo = new Object();
   Object valueTwo = new Object();
   map.put(keyOne, valueOne);
   ReferenceEntry<Object, Object> entry = segment.getEntry(keyOne, hashOne);
   ValueReference<Object, Object> valueReference = entry.getValueReference();
   @SuppressWarnings("unchecked")
   Reference<Object> reference = (Reference) valueReference;
   reference.enqueue();
   map.put(keyTwo, valueTwo);
   assertFalse(map.containsKey(keyOne));
   assertFalse(map.containsValue(valueOne));
   assertNull(map.get(keyOne));
   assertEquals(1, map.size());
   assertNull(segment.valueReferenceQueue.poll());
  }
 }
}

代码示例来源:origin: google/guava

public void testGetOrDefault() {
 LocalCache<Object, Object> map =
   makeLocalCache(createCacheBuilder().concurrencyLevel(1).initialCapacity(1));
 map.put(1, 1);
 assertEquals(1, map.getOrDefault(1, 2));
 assertEquals(2, map.getOrDefault(2, 2));
}

代码示例来源:origin: google/guava

public void testDrainKeyReferenceQueueOnRead() {
 for (CacheBuilder<Object, Object> builder : allKeyValueStrengthMakers()) {
  LocalCache<Object, Object> map = makeLocalCache(builder.concurrencyLevel(1));
  if (map.usesKeyReferences()) {
   Segment<Object, Object> segment = map.segments[0];
   Object keyOne = new Object();
   int hashOne = map.hash(keyOne);
   Object valueOne = new Object();
   Object keyTwo = new Object();
   map.put(keyOne, valueOne);
   ReferenceEntry<Object, Object> entry = segment.getEntry(keyOne, hashOne);
   @SuppressWarnings("unchecked")
   Reference<Object> reference = (Reference) entry;
   reference.enqueue();
   for (int i = 0; i < SMALL_MAX_SIZE; i++) {
    map.get(keyTwo);
   }
   assertFalse(map.containsKey(keyOne));
   assertFalse(map.containsValue(valueOne));
   assertNull(map.get(keyOne));
   assertEquals(0, map.size());
   assertNull(segment.keyReferenceQueue.poll());
  }
 }
}

代码示例来源:origin: google/guava

public void testDrainValueReferenceQueueOnRead() {
 for (CacheBuilder<Object, Object> builder : allKeyValueStrengthMakers()) {
  LocalCache<Object, Object> map = makeLocalCache(builder.concurrencyLevel(1));
  if (map.usesValueReferences()) {
   Segment<Object, Object> segment = map.segments[0];
   Object keyOne = new Object();
   int hashOne = map.hash(keyOne);
   Object valueOne = new Object();
   Object keyTwo = new Object();
   map.put(keyOne, valueOne);
   ReferenceEntry<Object, Object> entry = segment.getEntry(keyOne, hashOne);
   ValueReference<Object, Object> valueReference = entry.getValueReference();
   @SuppressWarnings("unchecked")
   Reference<Object> reference = (Reference) valueReference;
   reference.enqueue();
   for (int i = 0; i < SMALL_MAX_SIZE; i++) {
    map.get(keyTwo);
   }
   assertFalse(map.containsKey(keyOne));
   assertFalse(map.containsValue(valueOne));
   assertNull(map.get(keyOne));
   assertEquals(0, map.size());
   assertNull(segment.valueReferenceQueue.poll());
  }
 }
}

相关文章

微信公众号

最新文章

更多