19 Nisan 2020 Pazar

Multimaps Sınıfı - Multimap İle Çalışmayı Kolaylaştıran Static Yardım Metodlar

asMap metodu - ListMultimap
Açıklaması şöyle. ListMultimap.asMap() metodu sağ tarafı Collection olarak döner. Collection yerine List istersek bu static yardımcı metodu kullanırız.
Returns multimap.asMap(), with its type corrected from Map<K, Collection<V>> to Map<K, List<V>>.
forMap metodu
Map nesnesinden SetMultiMap yaratır.

Örnek
Elimizde şöyle bir kod olsun.
Map<T, K> map1 = ...;
Şöyle yaparız.
Multimaps.forMap(map1);
filterKeys metodu
Açıklaması şöyle.
The filterKeys method is not able to look inside the supplied filter to determine what it does. It is therefore necessary to apply the filter to all of the keys.
Şöyle yaparız.
TreeMultimap<Date, Integer> map = ...;

Date[] range = {new Date(10), new Date(20)};

Multimaps.filterKeys(map, Range.closed(range[0], range[1])).size();
filterValues metodu
İmzası şöyle
public static <K,V> Multimap<K,V> filterValues(Multimap<K,V> unfiltered,
Predicate<? super V> valuePredicate);

public static <K,V> SetMultimap<K,V> filterValues(SetMultimap<K,V> unfiltered,
Predicate<? super V> valuePredicate);
invertFrom metodu
Elimizdeki multimap'i value - key şeklindeki bir başka multimap'e çevirir.

inverseArrayListMultimap(),inverseHashMultimap(),inverseTreeMultimap() metodları bu metodda birleştirildi.

Örnek
Şöyle yaparız.
Multimap<String, String> map = HashMultimap.create();
map.put("01", "131");
map.put("04", "157");
map.put("01", "158");
map.put("109", "169");
map.put("112", "170");

Multimap<String, String> invertedMap = Multimaps.invertFrom(map,
  ArrayListMultimap.<String, String>create());
newListMultimap metodu - map + factory
Bu metod yerine MultimapBuilder kullanılmalı.
Örnek
Şöyle yaparız. Multimap'in Value tarafı NonEmptyList sınıfıdır
<K extends Comparable<K>,V> ListMultimap<K, V> create(Class<V> valueClass){
  return Multimaps.newListMultimap(new TreeMap<>(),
                                   () -> new NonEmptyList<>(valueClass));
}
Örnek
Şöyle yaparız.Multimap'in Value tarafı ArrayList sınıfıdır
ListMultimap<String,Integer> map =
  Multimaps.newListMultimap(Maps.<String, Collection<Integer>>newTreeMap(),
    new Supplier<List<Integer>>() {
      public List<Integer> get() {
        return Lists.newArrayList();
      }
  });
synchronizedListMultimap metodu
Açıklaması şöyle.
Returns a synchronized (thread-safe) multimap backed by the specified multimap.
Açıklaması şöyle.
In order to guarantee serial access, it is critical that all access to the backing multimap is accomplished through the returned multimap.
Örnek
Şöyle yaparız.
ListMultimap<String,Integer> synchronizedMultimap = 
    Multimaps.synchronizedListMultimap(map);
synchronizedMultimap metodu
Örnek
Şöyle yaparız.
Multimap<String, String> m = HashMultimap.create();
Multimap<String, String> n = Multimaps.synchronizedMultimap(m);
Örnek
Şöyle yaparız.
Multimap<String, String> n = Multimaps.synchronizedMultimap(
    HashMultimap.<String, String>create());

Hiç yorum yok:

Yorum Gönder