Python数组拆分代码的Java代码转换

时间:2010-05-24 08:21:35

标签: java python

有人可以给出以下python的Java等价物(将给定的数组切成给定的部分),最初由ChristopheD编写:

def split_list(alist, wanted_parts=1):
   length = len(alist)
   return [ alist[i*length // wanted_parts: (i+1)*length // wanted_parts] 
            for i in range(wanted_parts) ]

我不知道任何python,但可以在我的Java应用程序中使用上面的代码。感谢

2 个答案:

答案 0 :(得分:1)

也许是这样的:

List<List<T>> splitList(List<T> alist, int wantedParts) {
    ArrayList<List<T>> result = new ArrayList<List<T>>();
    int length = alist.length;

    for (int i = 0; i < wantedParts; i++) {
        result.append(alist.subList(i*length/wantedParts,
                                    (i+1)*length/wantedParts));
    }

    return result;
}

如果以后以任何方式对alist进行结构修改,则必须在代码中复制由subList方法创建的子列表,否则结果将无法预测。< / p>

答案 1 :(得分:0)

不要重新发明轮子,google collections api有一个名为partition的功能,它正是这样做的