31 Mayıs 2023 Çarşamba

List.subList metodu

Sabit Büyüklüğe Ayırmak
Partition by Size diyelim
Örnek
Şöyle yaparız
public static <T> List<List<T>> partitionList(List<T> list, int partitionSize) {
  List<List<T>> partitionedList = new ArrayList<>();
  int size = list.size();

  for (int i = 0; i < size; i += partitionSize) {
    int end = Math.min(size, i + partitionSize);
    partitionedList.add(list.subList(i, end));
  }
  return partitionedList;
}
Örnek - Guava
Lists.partition() kullanılabilir

Örnek - Apache Commons
ListUtils.partition() kullanılabilir

Sabit Sayıda Parçalara Ayırmak
Number of Partitions diyelim
Örnek
Şöyle yaparız. Listeyi 6 parçaya ayırırız
List<Integer> mylist = ...
int size = mylist.size();
int parts = 6;
int partSize = size / parts;
List<List<Integer>> result = 
    IntStream.range(0, parts)
             .mapToObj(i -> mylist.subList(i * partSize, (i + 1) * partSize)))
             .collect(Collectors.toList());

Hiç yorum yok:

Yorum Gönder