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}
Hiç yorum yok:
Yorum Gönder