12 Haziran 2019 Çarşamba

HashMultimap Sınıfı

create metodu
HashMultimap nesnesi döner.
Örnek
HashMultimap nesnesi MultipMap arayüzünden kalıttığı için şöyle yaparız.
Multimap<String, String> m = HashMultimap.create();
Örnek
HashMultimap nesnesi SetMultipMap arayüzünden kalıttığı için şöyle yaparız..
SetMultimap<Long, SomeClass> encounters = new Hashmultimap.create();
Örnek
Eğer thread safe olsun istesek şöyle yaparız.
Multimap<String, String> m = HashMultimap.create();
Multimap<String, String> n = Multimaps.synchronizedMultimap(m);
asMap metodu
Örnek
Bir key nesnesini tamemen silmek için şöyle yaparız.
Collection<Foo> values = multimap.asMap().remove(key);
Örnek
key + value collection olarak dolaşmak için şöyle yaparız.
for (Map.Entry<String, Collection<SomeClassObject>> entry : multimap.asMap().entrySet()) {
  String key = entry.getKey();
  Set<SomeClassObject> valuesForKey = multimap.get(key);
   // do whatever
}
Örnek
Sadece value collection olarak dolaşmak için şöyle yaparız.
for (Collection collection : multimap.asMap().values()) { ... }
containsKey metodu - key
boolean döner. Şöyle yaparız.
System.out.println("contains key 1? " + lmm.containsKey(1));
entries metodu
Şöyle yaparız.
for (Map.Entry entry : multimap.entries()) { ... }
get metodu - key
Metodu imzası şöyle
@Override
public Set<V> get(@Nullable K key);
Ata metodunu çağırır. Ata metodun imzası şöyle.
Collection<V>   get(K key) 
Ata metodun içi şöyle. Eğer key yoksa bile boş bir collection döner. Bu collection Set'e cast edilir.
/**
 * {@inheritDoc}
 *
 * <p>The returned collection is not serializable.
 */
@Override
public Collection<V> get(@Nullable K key) {
  Collection<V> collection = map.get(key);
  if (collection == null) {
    collection = createCollection(key);
  }
  return wrapCollection(key, collection);
}
keys metodu
key nesnesi çoklu değer taşıyorsa birden fazla karşımıza çıkar.  Açıklaması şöyle.
all keys (a key that maps to multiple values coming up multiple times in the iteration):
Örnek
Şöyle yaparız.
for (Object key : multimap.keys()) { ... }
keySet metodu
key nesnelerini tek bir kere dolaşmak içindir.

Örnek
Şöyle yaparız.
for (Object key : multimap.keySet()) { ... }
Örnek
şöyle yaparız.
for (String key : multimap.keySet()) {
  Collection<SomeClassObject> values = multimap.get(key);
  //Do whatever with all the values for Key key...
}
Örnek
Şöyle yaparız.
Set keySet = listmultimap.keySet();
Iterator keyIterator = keySet.iterator();
while (keyIterator.hasNext() ) {
  String key = (String) keyIterator.next();
  List values = listmultimap.get( key );

}
put metodu - key + value
Şöyle yaparız.
// A set multimap.
SetMultimap<Integer, Integer> smm = HashMultimap.<Integer, Integer> create();
smm.put(1, 2);
putAll metodu
Elimizde şöyle bir kod olsun.
Map<T, K> map1 = ...;
Şöyle yaparız.
multimap.putAll(Multimaps.forMap(map1));
remove metodu - key + value
Şöyle yaparız. Key ile ilişkili value nesnesini siler. En son value da silinince key nesnesi de silinir.
// A set multimap.
SetMultimap<Integer, Integer> smm = HashMultimap.<Integer, Integer> create();
smm.put(1, 2);
smm.remove(1, 2);
// Value of key 1 in HashMultimap: []
System.out.println("Contains key 1 in HashMultimap: " + smm.containsKey(1));

19 Mayıs 2019 Pazar

Range Sınıfı

closed metodu
Şöyle yaparız.
Map<String, Range<Long>> theMap = new HashMap<>();
theMap.put("Metric1", Range.closed(Long.MIN_VALUE, Long.MAX_VALUE));
theMap.put("Metric2", Range.closed(10L, 20L));
theMap.put("Metric3", Range.closed(30L, 50L));
contains metodu
Elimizde şöyle bir kod olsun.
private Map<String, Range<Long>> metricRanges = new HashMap<>();
Şöyle yaparız.
Range<Long> rangeOfDates = metricRanges.get(key);
if (rangeOfDates != null && rangeOfDates.contains(timestamp)) {
    return true;
}
intersection metodu
İki tane range nesnesi arasındaki kesişimi verir.

span metodu
İki tane range nesnesi arasındaki union'ı verir.

upperEndpoint metodu
Şöyle yaparız.
Range<String>> r = ...;
r.upperEndpoint(); 

2 Mayıs 2019 Perşembe

Uninterruptibles Sınıfı

awaitInterruptibly metodu
Metodun içi şöyle
public static boolean awaitUninterruptibly(Condition condition, long timeout,
TimeUnit unit)
{ boolean interrupted = false; try { long remainingNanos = unit.toNanos(timeout); long end = System.nanoTime() + remainingNanos; while (true) { try { return condition.await(remainingNanos, NANOSECONDS); } catch (InterruptedException e) { interrupted = true; remainingNanos = end - System.nanoTime(); } } } finally { if (interrupted) { Thread.currentThread().interrupt(); } } }
sleepUninterruptibly metodu
Şöyle yaparız
Uninterruptibles.sleepUninterruptibly(1000, TimeUnit.MILLISECONDS);

1 Mayıs 2019 Çarşamba

StopWatch Sınıfı

Giriş
Bu sınıfla kod içinde geçen süreyi milisaniye olarak ölçmek mümkün.

constructor
Şöyle yaparız.
Stopwatch stopWatch = new Stopwatch();
createStarted metodu
Şöyle yaparız.
Stopwatch stopwatch = Stopwatch.createStarted();
elapsed metodu
Duration nesnesi döner.
Örnek
Şöyle yaparız.
Duration duration = stopWatch.elapsed();
elapsedTime metodu
Şöyle yaparız.
long time = stopWatch.elapsedTime(TimeUnit.SECONDS);
start metodu
Şöyle yaparız.
stopWatch.start();
...
stopWatch.stop();
stop metodu
Şöyle yaparız.
stopwatch.stop().elapsed(TimeUnit.NANOSECONDS);