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.
以上是如何在 Java 中將 ArrayList 分割為更小的子清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!