26 Haziran 2019 Çarşamba

Validate Sınıfı

notNull metodu
Şöyle yaparız. Kendi mesajımızla NullPointerException fırlatır.
Validate.notNull(data, "Data cannot be null");

25 Haziran 2019 Salı

ArrayListValuedHashMap Sınıfı - Multimap

Giriş
Şu satırı dahil ederiz..
import org.apache.commons.collections4.MultiValuedMap.ArrayListValuedHashMap;
Maven
Şu satırı dahil ederiz.
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-collections4</artifactId>
  <version>4.1</version>
</dependency>
Klasik bir multimap örneğidir. Bu sınıf çift (duplicate) value değerleri kabul eder.

Bu sınıfın kardeşi HashSetValuedHashMap çift (duplicate) value değerlere izin vermez.

Kalıtım
MultiValuedMap arayüzünden kalıtır. MultiValuedMap arayüzü de SetValuedMap arayüzünden kalıtır. Açıklaması şöyle
SetValuedMap does not implement Map interface. It has a difference in for example put() method return value types and therefore they are "incompatible" in that sense. It is a utility class from Apache commons and not "standard Java".
constructor
Şöyle yaparız.
MultiValuedMap<String, String> associationsMap = new ArrayListValuedHashMap<>();
get metodu
Collection<V> döndürür.

24 Haziran 2019 Pazartesi

MultiKeyMap Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.collections4.map.MultiKeyMap;
Birden fazla key değeri ile bir value değerini eşleştirir. Bu sınıf aslında şuna benziyor.
ConncurrentMap<BiKey,Stuff> map = new ConcurrentHashMap<BiKey,Stuff>();

class BiKey{
    Key1 k1;
    Key2 k2;
    //let equals return k1.equqls&&k2.equals and implement hashCode accordingly
 }
constructor
Şöyle yaparız.
MultiKeyMap<String, String> multiKeyMap = new MultiKeyMap();
decorate metodu
LinkedMap vererek insertion order'ın korunmasını sağlarız

entrySet metodu
Şöyle yaparız.
MultiKeyMap<String, String> multiKeyMap = new MultiKeyMap();

multiKeyMap.put( "a1", "b1", "c1", "value1");
multiKeyMap.put( "a2", "b2", "c2", "value1");

for(Map.Entry<MultiKey<? extends String>, String> entry: multiKeyMap.entrySet()){
  System.out.println(entry.getKey().getKey(0)
    +" "+entry.getKey().getKey(1)
    +" "+entry.getKey().getKey(2)
    + " value: "+entry.getValue());
}
get metodu
Şöyle yaparız.
String s = multiKey.get("key1.1", "key2.1");
multiKeyMap metodu
Şöyle yaparız.
MultiKeyMap cache = MultiKeyMap.multiKeyMap(new LRUMap(50));
put metodu
Şöyle yaparız.
multiKey.put("key1.1", "key2.1", "value1");

12 Haziran 2019 Çarşamba

Hex Sınıfı

Giriş
Şu satırı dahil ederiz
import org.apache.commons.codec.binary.Hex;
decodeHex metodu
Hexadecimal string'i byte dizisine çevirir.
Örnek
Şöyle yaparız.
String message = ...;
byte[] bytes = Hex.decodeHex(message);