我正在尝试将数组列表拆分为单独的数组以获得“边缘”。我需要将数组列表拆分为大小为 3 的数组,新拆分创建的数组的第三个元素是下一个的第一个元素。我目前所做的是,arraylist 已成功拆分为 3 个数组,尽管第 3 个元素不是下一个元素的第一个元素。
示例: [1,2,3,4,5,6,7] 需要拆分为 [1,2,3],[3,4,5],[5,6,7] 但我我得到的是 [1,2,3],[4,5,6],[7]
这是我使用的代码:
for(ArrayList<String> path : allPaths) {
edges = separate(path, 3);
}
for(List<String> edge : edges){
System.out.println("Edge: "+edge);
}
然后访问这个方法
static <T> List<List<T>> separate (List<T> path, final int size){
List<List<T>> separated = new ArrayList<>();
for(int i = 0; i < path.size(); i+= size){
separated.add(new ArrayList<>(path.subList(i, Math.min(path.size(), i + size))));
}
return separated;
}