Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Elimizde şöyle bir kod olsun
Metodun içi şöyle
Şöyle yaparız
Şöyle yaparız
Örnek ver
newArrayList metodu - Iterator
Verilen iterator'den ArrayList oluşturur. Şöyle yaparız.
reverse metodu
Açıklaması şöyle.
Bir List içindeki nesne bir başka nesne tipine dönüştürülebiliyor. Yeni bir liste dönmez!
Şu satırı dahil ederiz.
import com.google.common.collect.Lists;
asList metoduŞöyle yaparız.
String first = "first";
String[] rest = { "second", "third" };
List<String> list = Lists.asList(first, rest);
cartesianProduct metoduElimizde şöyle bir kod olsun
Map<String, List<String>> map = new HashMap<>();
map.put("first", asList("first1", "first2", "first3"));
map.put("second", asList("second1", "second2", "second3"));
map.put("anyOther", asList("anyType1", "anyType2", "anyType3"));
Tüm many kısımların çarpımını almak için şöyle yaparız.final List<List<String>> product =
Lists.cartesianProduct(ImmutableList.copyOf(map.values()));
Çıktı olarak şunu alırızfirst1;second1;anytype1
first1;second2;anytype2
first1;second3;anytype3
first1;second1;anytype1
first1;second2;anytype3
first1;second3;anytype2
.....
newArrayList metoduMetodun içi şöyle
public static <E> ArrayList<E> newArrayList() {
return new ArrayList<E>();
}
ÖrnekŞöyle yaparız
public List<String> message() {
return Lists.newArrayList("One");
}
newArrayList - ArrayŞöyle yaparız
Lists.newArrayList("a","b");
newArrayList metodu - IterableÖrnek ver
newArrayList metodu - Iterator
Verilen iterator'den ArrayList oluşturur. Şöyle yaparız.
Lists.newArrayList(Iterables.filter(iterator, x->...));
partition metodu
Listeyi belirtilen sayı kadarlık daha küçük alt listeler böler.
Örnek
Şöyle yaparız
int batch_size = 1000;
List<Integer> numbers = IntStream.rangeClosed(1, 11100)
.boxed().toList();
List<List<Integer>> partition = Lists.partition(numbers, batch_size);
partition.forEach(System.out::println);
Örnek
Şöyle yaparız. Listeyi 2 elemanlık daha küçük alt listelere böler.
List<Integer> mylist = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12);
List<List<Integer>> partionList = Lists.partition(mylist, 2);
System.out.println(partionList);
Çıktı olarak şunu alırız
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]
Örnek
Listeyi 3 elemanlık alt listelere bölüp her alt listenin toplamını almak için şöyle yaparız
List<SaleTxn> saleTxns = new ArrayList<>();
saleTxns.add(new SaleTxn(1, "2018-10-10", 100));
saleTxns.add(new SaleTxn(2, "2018-10-11", 200));
saleTxns.add(new SaleTxn(3, "2018-10-12", 100));
saleTxns.add(new SaleTxn(4, "2018-10-13", 100));
saleTxns.add(new SaleTxn(5, "2018-10-14", 200));
saleTxns.add(new SaleTxn(6, "2018-10-15", 200));
// implement of filter
saleTxns = saleTxns.stream().filter(saleTxn -> true).collect(Collectors.toList());
// partition the list and sum all value
List<Integer> result = Lists.partition(saleTxns, 3).stream()
.mapToInt(value -> value.stream().mapToInt(SaleTxn::getAmount).sum())
.boxed()
.collect(Collectors.toList());
System.out.println(result);
Çıktı olarak şunu alırızz
[400, 500]
Açıklaması şöyle.
Unlike Collections.reverse, this is purely a view... it doesn't alter the ordering of elements in the original list. Additionally, with an original list that is modifiable, changes to both the original list and the view are reflected in the other.Şöyle yaparız.
List<String> letters = ImmutableList.of("a", "b", "c");
List<String> reverseView = Lists.reverse(letters);
transform metodu
Bir List içindeki nesne bir başka nesne tipine dönüştürülebiliyor. Yeni bir liste dönmez!
Hiç yorum yok:
Yorum Gönder