Class BambooMaps


  • public class BambooMaps
    extends Object
    • Method Detail

      • newHashMapFrom

        public static <K,​V> Map<K,​V> newHashMapFrom​(Iterable<? extends V> source,
                                                                com.google.common.base.Function<V,​Pair<K,​V>> function)
      • newLinkedHashMapWithLimitedSize

        public static <K,​V> Map<K,​V> newLinkedHashMapWithLimitedSize​(int maxSize)
      • putAll

        public static <K,​V> void putAll​(Map<K,​? super V> map,
                                              Iterable<Pair<K,​V>> iterable)
      • mutableUniqueIndex

        public static <K,​V> Map<K,​V> mutableUniqueIndex​(Iterable<? extends V> values,
                                                                    com.google.common.base.Function<? super V,​? extends K> indexGenerator)
      • mutableLinkedUniqueIndex

        public static <K,​V> LinkedHashMap<K,​V> mutableLinkedUniqueIndex​(Iterable<? extends V> values,
                                                                                    com.google.common.base.Function<? super V,​? extends K> indexGenerator)
      • populateMap

        public static <K,​V> V populateMap​(@NotNull
                                                @NotNull Map<K,​V> map,
                                                @NotNull
                                                V input,
                                                @NotNull
                                                @NotNull com.google.common.base.Function<? super V,​? extends K> indexGenerator)
        Add entry to the map using Function to generate a key
        Parameters:
        map - map that will get an extra element
        input - element to be added to map
        indexGenerator - function that will generate key for a given element
        Returns:
        same behavior as Map.put(Object, Object)
      • nullMasquingLoader

        @NotNull
        public static <K,​V> @NotNull com.google.common.cache.CacheLoader<? super K,​io.atlassian.fugue.Option<V>> nullMasquingLoader​(com.google.common.cache.CacheLoader<? super K,​? extends V> nullReturningLoader)
      • generateMap

        public static <K,​V> Map<K,​V> generateMap​(@NotNull
                                                             @NotNull Set<K> keys,
                                                             @NotNull
                                                             @NotNull com.google.common.base.Function<K,​V> generator)
        Convenience method for generating map out of set of keys, and value generator. Should be used for small maps. For more sophisticated uses consider using Guava's CacheBuilder.
      • prune

        public static <K,​V> void prune​(@NotNull
                                             @NotNull Map<K,​V> map,
                                             @NotNull
                                             @NotNull Predicate<Map.Entry<K,​V>> predicate)
        Removes entries that match the supplied predicate