Giriş
Multimaps ile kardeştir.
difference metodu
MapDifference nesnesi döner. Bu nesneyi tek başına kullanamıyoruz. Bu nesneye ait entriesDiffering(),entriesOnlyOnLeft(),entriesOnlyOnRight(),entriesInCommon() gibi bir metodu kullanmak gerekiyor.
MapDifference.entriesDiffering() metodu
Multimaps ile kardeştir.
difference metodu
MapDifference nesnesi döner. Bu nesneyi tek başına kullanamıyoruz. Bu nesneye ait entriesDiffering(),entriesOnlyOnLeft(),entriesOnlyOnRight(),entriesInCommon() gibi bir metodu kullanmak gerekiyor.
MapDifference.entriesDiffering() metodu
key değerleri aynı ancak value değerleri farklı olan nesneleri bir Map olarak döner.
Örnek
Şöyle yaparız
Map<String, LinkedHashMap<String, Object>> oldMap = ...;
Map<String, LinkedHashMap<String, Object>> currMap = ...;
MapDifference<String, LinkedHashMap<String, Object>> diff =
Maps.difference(oldMap, currMap);
Map<String, MapDifference.ValueDifference<LinkedHashMap<String, Object>>> entriesDiffering
= diff.entriesDiffering();
MapDifference.entriesOnlyOnLeft() metodu
key değerleri sadece solda olan nesneleri bir Map olarak döner.
MapDifference.entriesOnlyOnRight() metodu
MapDifference.entriesOnlyOnRight() metodu
key değerleri sadece sağda olan nesneleri bir Map olarak döner.
MapDifference.entriesInCommon() metodu
MapDifference.entriesInCommon() metodu
key değerleri her ikisinde aynı olan nesneleri bir Map olarak döner.
Maps.difference() metodunda value nesnesinin hasCode() ve equals() metodu doğru çalışmalıdır. Value tipi array ise düzgün çalışmaz. Açıklaması şöyle.
Şöyle yaparız.
Şöyle yaparız.
Listedeki her elemanı key yapar. Value için de belirtilen ValueSupplier metodu çağırır.
uniqueIndex metodu
Listedeki her elemanı value yapar. Key için de belirtilen KeyExtractor metodu çağırır.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Maps.difference() metodunda value nesnesinin hasCode() ve equals() metodu doğru çalışmalıdır. Value tipi array ise düzgün çalışmaz. Açıklaması şöyle.
doesn't work when the value type is array, as an array's equals() method compares identity and not the contents of the array:Örnek
Şöyle yaparız.
Map<String, Object> leftFlatMap = ...;
Map<String, Object> rightFlatMap = ...;
MapDifference<String, Object> difference = Maps.difference(leftFlatMap, rightFlatMap);
newHashMap metoduŞöyle yaparız.
Map<Integer, List<Integer> idMap = Maps.newHashMap();
toMap metoduListedeki her elemanı key yapar. Value için de belirtilen ValueSupplier metodu çağırır.
uniqueIndex metodu
Listedeki her elemanı value yapar. Key için de belirtilen KeyExtractor metodu çağırır.
Örnek
Şöyle yaparız.
Map<String,Role> mappedRoles = Maps.uniqueIndex(yourList, new Function<Role,String>() {
public String apply(Role from) {
return from.getName(); // or something else
}});
ÖrnekŞöyle yaparız.
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, Choice::getName);
}