16 Ekim 2019 Çarşamba

Iterators Sınıfı

concat metodu
İki veya daha fazla Iterator nesnesini tek bir Iterator gibi gösterir.
Örnek ver

cycle metodu
Iterator üzerinde sonsuza kadar yürüyebilmeyi sağlar.
Örnek
Elimizde şöyle bir kod olsun.
List<Widget> widgets = ...
Şöyle yaparız.
Iterator<Widget> cyclingIterator = Iterators.cycle(widgets);

public Widget pick() {
  return cyclingIterator.next();
}
filter metodu - iterator + predicate
Örnek
Hazır predicate kullanmak istersek şöyle yaparız.
Iterators.filter(iterator,
     Predicates.notNull()
  )
Örnek
Şöyle yaparız.
Predicate<SomeObject> pred = new Predicate<> () {... some condition_1 ...};
Iterator<SomeObject> newIterator = Iterators.filter(iterator, pred);
forEnumeration metodu
Örnek
Şöyle yaparız.
Enumeration<Something> enumeration = ...;

Iterator<SomeThing> iterator = Iterators.forEnumeration(enumeration);
getLast metodu
Eğer iterator sonda değilse iterator'deki en son değeri verir. Sonuna gelmişse default değer olarak belirtilen şeyi döner.
Örnek
Şöyle yaparız
Collection<Foo> c = ...;
Iterator<Foo> itr = c.iterator();
Foo lastElement = Iteratos.getLast(itr,null);
getNext metodu
Eğer iterator sonda değilse iterator'deki bir sonraki değeri verir. Sonuna gelmişse default değer olarak belirtilen şeyi döner.
Örnek
Şöyle yaparız
Iterator<String> names = Arrays.asList("one", "two", "three").iterator();
String foo;
while((foo= Iterators.getNext(names, null))!=null){
  System.out.println(foo);
}
unmodifiableIterator metodu
Silmeyi desteklemeyen salt okunur iterator döner. Şöyle yaparız.
Iterators.unmodifiableIterator(iterator);
size metodu
Iterator nesnesini tüketir. Metodun için şöyle.
public static int size(Iterator<?> iterator) {
  long count = 0L;
  while (iterator.hasNext()) {
    iterator.next();
    count++;
  }
  return Ints.saturatedCast(count);
}
Şöyle yaparız.
Iterator<?> keys = ...
System.err.println(Iterators.size(keys));

Hiç yorum yok:

Yorum Gönder