desislava_topuzakova

Divide method

Feb 24th, 2021
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. public static void divideData(List<String> data, int index, int partitions) {
  2.  
  3. if (partitions == 0 || index >= data.size()) {
  4. return;
  5. }
  6.  
  7. if (partitions < 0 || partitions > 100) {
  8. return;
  9. }
  10.  
  11. int dataLen = data.get(index).length();
  12. int partitionLen = dataLen / partitions;
  13. List<String> divElements = new ArrayList<>();
  14. int nextPartitionIdx = 0;
  15. if (partitionLen == 0) {
  16. return;
  17. }
  18.  
  19.  
  20. int remainder = dataLen % partitions;
  21. if (remainder == 0) {
  22. for (int i = 0; i < partitions; i++) {
  23.  
  24. divElements.add(data.get(index).substring(nextPartitionIdx,nextPartitionIdx+partitionLen));
  25. nextPartitionIdx+=partitionLen;
  26. }
  27.  
  28.  
  29. } else {
  30. for (int i = 0; i < partitions; i++) {
  31.  
  32. if (i == partitions - 1) {
  33.  
  34. partitionLen+= remainder;
  35. }
  36. divElements.add(data.get(index).substring(nextPartitionIdx,nextPartitionIdx+partitionLen));
  37. nextPartitionIdx+=partitionLen;
  38. }
  39. }
  40.  
  41. data.remove(index);
  42. data.addAll(index, divElements);
  43. }
Advertisement
Add Comment
Please, Sign In to add comment