24 Eylül 2018 Pazartesi

MultimapBuilder Sınıfı

Giriş
A builder for a multimap implementation that allows customization of the backing map and value collection implementations used in a particular multimap.
This can be used to easily configure multimap data structure implementations not provided explicitly in com.google.common.collect
hashKeys metodu
Şöyle yaparız.
SetMultimap<Integer, MyEnum> hashEnumMultimap =
     MultimapBuilder.hashKeys().enumSetValues(MyEnum.class).build();
treeKeys metodu
Örnek
Anahtar değerleri sıralamak ve.value değerlerini de liste gibi saklamak için şöyle yaparız.
ListMultimap<String, Integer> treeListMultimap = 
   MultimapBuilder.treeKeys().arrayListValues().build();

23 Eylül 2018 Pazar

HashMultiset Sınıfı

Giriş
Şu satırı dahil ederiz.
import com.google.common.collect.HashMultiset;
Bu sınıf bir Set gibi çalışır. İlave olarak aynı elemanın kaç kere eklendiğini count() metodu ile sayar.

create metodu
Şöyle yaparız.
HashMultiset<Map<String, Object>> n1Properties = HashMultiset.create();
create metodu - Iterable
Elimizde şöyle bir kod olsun.
List<BigDecimal> listOfNumbers = ...; 
Şöyle yaparız.
Multiset<BigDecimal> multiset = HashMultiset.create(listOfNumbers);
addAll metodu - Map
Şöyle yaparız.
Map<String, Object> map = new HashMap<>();
map.put("foo", "FOO");
map.put("bar", "BAR");

HashMultiset<Map<String, Object>> n1Properties = HashMultiset.create();
n1Properties.addAll(Collections.singleton(map));
Çıktı olarak şunu alırız.
[{bar=BAR, foo=FOO}]

21 Eylül 2018 Cuma

Primitives Sınıfı

isWrapperType metodu
Metod belirtilen sınıfın bir primitive için wrapper olup olmadığını döner. Boolean.class boolean için wrapper sayılır. Şöyle yaparız.
Primitives.isWrapperType(class)
uwrap metodu
Integer.class girdisine int.class döndürür.

wrap metodu
int.class girdisine Integer.class döndürür.


19 Eylül 2018 Çarşamba

ByteStreams Sınıfı

toByteArray metodu
InputStream nesnesini tamamını okuyarak byte[] haline getirir.
Örnek
Şöyle yaparız.
InputStream in = ...;
byte[] bytes = ByteStreams.toByteArray(in);

EvictingQueue Sınıfı

Giriş
Guava'da "Circular Ring" olarak tabir edilebilecek iki tane temel veriyapısı var.Bunlar şöyle.
EvictingQueue
MinMaxPriorityQueue

Açıklaması şöyle. Kendi içinde ArrayDequeue kullanır.
A non-blocking queue which automatically evicts elements from the head of the queue when attempting to add new elements onto the queue and it is full. An evicting queue must be configured with a maximum size. Each time an element is added to a full queue, the queue automatically removes its head element. This is different from conventional bounded queues, which either block or reject new elements when full.
This class is not thread-safe, and does not accept null elements.
Kullanım
Şöyle yaparız
Queue<SomeRandomBusinessObject> items = Queues.synchronizedQueue(
  EvictingQueue.create(queueSize));

add metodu
Kapasitesi dolunca en eski elemanı siler.
Örnek
Şöyle yaparız.
EvictingQueue<String> queue = EvictingQueue.create(2);
queue.add("a");
queue.add("b");
queue.add("c");
queue.add("d");
System.out.print(queue); //outputs [c, d]
remove metodu
En eski elemanı döndürür.

18 Eylül 2018 Salı

Invokable Sınıfı

Giriş
Şu satırı dahil ederiz
import com.google.common.reflect.Invokable;
Açıklaması şöyle.
The Invokable is a fluent wrapper of java.lang.reflect.Method and java.lang.reflect.Constructor. It provides a simpler API on top of a standard Java reflection API.