lots of exercises in java... from https://github.com/exercism/java

Series.java 1.0KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.stream.Collectors;
  5. public class Series {
  6. private final int digitsSize;
  7. private List<Integer> digits;
  8. public Series(String string) {
  9. this.digits = Arrays
  10. .asList(string.split(("")))
  11. .stream()
  12. .map(digit -> Integer.parseInt(digit))
  13. .collect(Collectors.toList());
  14. this.digitsSize = this.digits.size();
  15. }
  16. public List<List<Integer>> slices(int num) {
  17. if (num > this.digitsSize) {
  18. throw new IllegalArgumentException("Slice size is too big.");
  19. }
  20. final int limit = this.digitsSize - num + 1;
  21. List<List<Integer>> result = new ArrayList<>(limit);
  22. List<Integer> tmp;
  23. for (int i = 0; i < limit; i++) {
  24. tmp = this.digits.subList(i, i + num);
  25. result.add(tmp);
  26. }
  27. return result;
  28. }
  29. public List<Integer> getDigits() {
  30. return digits;
  31. }
  32. }