12 Mart 2020 Perşembe

ArrayListMultimap Sınıfı

Giriş
Şu satırı dahil ederiz.
import com.google.common.collect.ArrayListMultimap;
ListMultimap arayüzünü gerçekleştirir.

Bu arayüzü gerçekleştiren sınıflar şöyle
ArrayListMultimap, ForwardingListMultimap, ImmutableListMultimap, LinkedListMultimap

Multimap'in sağ tarafı yani value değerlerini tutan tarafı ArrayList'tir.

constructor
Multimaps sınıfını kullanmazı zor. Bu yüzden sınıfın kendi create() metodunu tercih etmeli.

Örnek
create() metodunu kullanmıyorsak şöyle yaparız.
ListMultimap<DuplicateKey,Integer> map =
  Multimaps.newListMultimap(
  Maps.<DuplicateKey, Collection<Integer>>newTreeMap(),
  new Supplier<List<Integer>>() {
    public List<Integer> get() {
      return Lists.newArrayList();
    }
});
asMap metodu
Açıklaması şöyle.
.asMap() lets you get a map and you can then iterate over its .entrySet().
Açıklaması şöyle. Yani metod Map<K,Collection<V>> dönmesine rağmen Collection aslında List nesnesidir. Eğer  Map<K,List<V>> nesnesi istersek Multimaps.asMap() metodunu kullanmak gerekir.
Note: The returned map's values are guaranteed to be of type List. To obtain this map with the more specific generic type Map<K, List<V>>, call Multimaps.asMap(ListMultimap) instead.
Örnek
Tüm value nesneleri üzerinde dolaşmak için şöyle yaparız.
ListMultimap<String,String> sampleMultimap = ArrayListMultimap.create();
Map<String,Collection<String>> mapView = sampleMultimap.asMap();
for (String key : mapView.keySet()) {
    Collection<String> value = mapView.get(key);
    // do something with value
}
create metodu
Örnek
Şöyle yaparız.
ListMultimap<String, String> result = ArrayListMultimap.create();
Örnek
Şöyle yaparız.
Multimap<String, String> matchingMap = ArrayListMultimap.create();
entries metodu
Tüm entry nesnelerine topluca erişim sağlar.
Örnek
Şöyle yaparız.
Collection<Map.Entry<String, List<MyObject>>> entries =  tasksMap.entries()
get metodu
Şöyle yaparız.
List<MyObject> values = tasksMap.get(key);
keySet metodu
Örnek ver

put metodu
Şöyle yaparız
String text1 = "Loan";
String text2 = "Home";
Multimap<String, String> matchingMap = ArrayListMultimap.create();

matchingMap.put(text1 + ":" + text2, "getLoan");
matchingMap.put(text1 + ":" + text2, "setLoan");
matchingMap.put(text1 + ":" + text2, "applyLoan");
System.out.println("matchingMap :: " + matchingMap);
Çıktı olarak şunu alırız
matchingMap :: {Loan:Home=[getLoan, setLoan, applyLoan]}
values metodu
Tüm value nesnelerine topluca erişim sağlar.
Örnek
Şöyle yaparız.
Collection<List<MyObject>> values = tasksMap.values();

Hiç yorum yok:

Yorum Gönder