JDK Map interfeysini takrorlash juda qiyin, chunki Iteratsiya EntrySet yoki KeySet obyektlari orqali amalga oshiriladi. MapIterator Map orqali oddiy iteratsiyani ta'minlaydi. Quyidagi misol xuddi shu narsani ko'rsatadi.
MapIteratorTester.java uchun misol quyidagicha -
import org.apache.commons.collections4.IterableMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.map.HashedMap;
public class MapIteratorTester {
public static void main(String[] args) {
IterableMap map = new HashedMap<>();
map.put("1", "One");
map.put("2", "Two");
map.put("3", "Three");
map.put("4", "Four");
map.put("5", "Five");
MapIterator iterator = map.mapIterator();
while (iterator.hasNext()) {
Object key = iterator.next();
Object value = iterator.getValue();
System.out.println("key: " + key);
System.out.println("Value: " + value);
iterator.setValue(value + "_");
}
System.out.println(map);
}
}
Natija:
key: 3
Value: Three
key: 5
Value: Five
key: 2
Value: Two
key: 4
Value: Four
key: 1
Value: One
{3=Three_, 5=Five_, 2=Two_, 4=Four_, 1=One_}
Commons Collections - Ob'ektlarni filtrlash
Apache Commons Collections kutubxonasining CollectionUtils klassi keng ko'lamli foydalanish holatlarini qamrab oladigan umumiy operatsiyalar uchun turli yordamchi usullarni taqdim etadi. Bu qozon kodini yozishdan qochishga yordam beradi. Ushbu kutubxona jdk 8 dan oldin juda foydali, chunki shunga o'xshash funksiyalar hozir Java 8 ning Stream API-da taqdim etilgan.
filter() usuli CollectionUtils ning filter() usuli o'tgan predikat tomonidan taqdim etilgan shartga javob bermaydigan ob'ektlarni olib tashlash uchun ro'yxatni filtrlash uchun ishlatilishi mumkin.
Deklaratsiya