16 Haziran 2020 Salı
2 Haziran 2020 Salı
Splitter Sınıfı
fixedLength metodu
Mantık olarak Iterable döndürür
Örnek
Şöyle yaparız
Örnek
Şöyle yaparız
Ayraç karakterini belirtir.
Örnek
Şöyle yaparız.
Mantık olarak Iterable döndürür
Örnek
Şöyle yaparız
Iterable<String> chunks = Splitter.fixedLength(30).split(string);
limit metoduÖrnek
Şöyle yaparız
String key = "mykey";
String value = "=2>@C=b";
String combined = key +"=" + value;
Splitter.on('=').limit(2).splitToList(combined);
Çıktı olarak şnu alırız.[mykey, =2>@C=b]
on metoduAyraç karakterini belirtir.
Örnek
Şöyle yaparız.
String pairs = "cat:01,02,03;dog:AA,BB,CC;fish:A1,A2";
Map<String, String> map = Splitter.on(';')
.withKeyValueSeparator(':')
.split(pairs);
withKeyValueSeparator metodu
Iterable yerine Map döndürülmesine sebep olur. on() çağrısıyla key/value çiftleri arasındaki ayraç belirtilir. withKeyValueSeparator() çağrısıyla key/value arasındaki ayraç belirtilir.Örnek
key/value çifti döndüğü ve bir Map'e yerleştirildiği için aynı key değerinden iki tane olamaz. Elimizde şöyle bir kod olsun
String fieldSplit = " ";
String valueSplit = "=";
String message = "ip=1.2.9.0 error=NA ip=1.2.9.0";
Map<String, String> parserMap = Splitter.on(fieldSplit).omitEmptyStrings()
.withKeyValueSeparator(valueSplit).split(message);
Exception olarak şunu alırız
... Duplicate key [ip] found.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
String result = "...";
Map map = Splitter.on(",").withKeyValueSeparator(":").split(result);
ÖrnekŞöyle yaparız.
String input = "..." +
Map<String, String> result = Splitter.on(":").withKeyValueSeparator("...").split(input);
ÖrnekŞöyle yaparız
Splitter.MapSplitter mapSplitter = Splitter.on(",").withKeyValueSeparator("=");
String input = "A=1,B=2,C=null";
//when
Map<String, String> result = mapSplitter.split(input);
//then
assertThat(result)
.containsExactly(entry("A", "1"),
entry("B", "2"),
entry("C", "null"));
// {A=1, B=2, C=null}
1 Haziran 2020 Pazartesi
BiMap Arayüzü
Giriş
Açıklaması şöyle.
Bu arayüzden kalıtan bir sınıf HashBimap.
Bir diğeri ise ImmutableBiMap. ImmutableBiMap elemanların ekleme sırasını koruyor.
forcePut metodu
Şöyle yaparız.
Örnek
Elimizde şöyle bir kod olsun. ForwardingBiMap sınıfı normalde Guava ile gelmiyor ancak biz kendimiz kodluyoruz.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Açıklaması şöyle.
A bimap (or "bidirectional map") is a map that preserves the uniqueness of its values as well as that of its keys. This constraint enables bimaps to support an "inverse view", which is another bimap containing the same entries as this bimap but with reversed keys and values.
Bir diğeri ise ImmutableBiMap. ImmutableBiMap elemanların ekleme sırasını koruyor.
forcePut metodu
Şöyle yaparız.
cache.forcePut(3, URI.create("http://example.com"));
System.out.println(cache);
// {2=http://stackoverflow.com, 3=http://example.com}
getOrDefault metoduÖrnek
Elimizde şöyle bir kod olsun. ForwardingBiMap sınıfı normalde Guava ile gelmiyor ancak biz kendimiz kodluyoruz.
public abstract class ForwardingBiMap<K,V> implements BiMap<K,V> {
protected abstract BiMap<K,V> delegate();
// implement *all* other methods with the following pattern:
// ReturnType method(ParamType param) {
// return delegate().method(param);
// }
}
Şöyle yaparız. ForwardingBiMap nesnesi yaratılırpublic static <K,V> BiMap<K, V> validating(BiMap<K,V> delegate) {
Objects.requireNonNull(delegate);
return new ForwardingBiMap<K,V>() {
@Overridea
protected BiMap<K,V> delegate() { return delegate; }
@Override
public V getOrDefault(Object key, V defaultValue) {
// Implement your own validation here
return super.getOrDefault(key, defaultValue);
}
};
}
inverse metoduŞöyle yaparız.
BiMap<String,String> textMap = HashBiMap.create();
textMap.put("id_1","She");
textMap.put("id_2","has");
textMap.put("id_3","a");
textMap.put("id_4","neck");
textMap.put("id_5","pain");
BiMap<String,String> idToText = textMap.inverse();
System.out.println(idToText.get("neck"));
System.out.println(idToText.get("pain"));
put metoduŞöyle yaparız.
BiMap<String, String> m = HashBiMap.create();
m.put("Foo", "Bar");
m.put("Baz", "Bar"); // Throws IllegalArgumentException "value already present"
putIfAbsent metodu
Şöyle yaparız.
cache.putIfAbsent(1, URI.create("http://example.com"));
cache.putIfAbsent(2, URI.create("http://stackoverflow.com"));
System.out.println(cache);
// {1=http://example.com, 2=http://stackoverflow.com}
Kaydol:
Kayıtlar (Atom)