Home  >  Article  >  Java  >  How to Split an ArrayList into Smaller Sublists in Java?

How to Split an ArrayList into Smaller Sublists in Java?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-15 05:42:02363browse

How to Split an ArrayList into Smaller Sublists in Java?

Splitting ArrayLists into Smaller Sublists

In Java, the ArrayList data structure provides a convenient way to store collections of objects efficiently. Sometimes, it becomes necessary to partition an ArrayList into multiple smaller sublists of a specified size. This article explores how to achieve this effectively.

Using subList() for Immutable Views

The subList() method allows you to create views of a portion of an ArrayList. The resulting sublists are immutable, meaning they cannot be modified.

List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));
List<Integer> head = numbers.subList(0, 4);
List<Integer> tail = numbers.subList(4, 8);

After creating the sublists, any changes made to the original ArrayList will be reflected in the sublists. Conversely, modifications to the sublists will not affect the original ArrayList.

Creating Mutable Sublists

If you require mutable sublists, create new ArrayLists from the subList() views.

List<Integer> newHead = new ArrayList<>(head);

Chopped Function for Convenient Partitioning

For situations where multiple sublists are needed, consider creating a utility function like the following:

static <T> List<List<T>> chopped(List<T> list, final int L) {
    List<List<T>> parts = new ArrayList<>();
    int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

This function takes an ArrayList and a desired sublist length as parameters and returns a list of sublists.

Example Usage

List<Integer> numbers = Collections.unmodifiableList(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));
List<List<Integer>> parts = chopped(numbers, 3);
System.out.println(parts); // prints "[[5, 3, 1], [2, 9, 5], [0, 7]]"

Conclusion

By leveraging the subList() method and the utility function discussed in this article, you can effectively split an ArrayList into multiple smaller sublists, tailoring to your specific programming needs.

The above is the detailed content of How to Split an ArrayList into Smaller Sublists in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn