什么应该是zip函数的返回类型?(zip与大多数其他语言一样,例如在这里阅读)
我想到了一些Pair类型,但在Java中并不存在.通常认为这是因为专门的Pair-class比一般的更好(参见这个问题).但是,这在一般zip功能中是不可能的.
由于您似乎决定忽略具有多年Java经验的人,因此这里的代码与python中的zip函数相同.
public static <T> List<List<T>> zip(List<T>... lists) {
List<List<T>> zipped = new ArrayList<List<T>>();
for (List<T> list : lists) {
for (int i = 0, listSize = list.size(); i < listSize; i++) {
List<T> list2;
if (i >= zipped.size())
zipped.add(list2 = new ArrayList<T>());
else
list2 = zipped.get(i);
list2.add(list.get(i));
}
}
return zipped;
}
public static void main(String[] args) {
List<Integer> x = Arrays.asList(1, 2, 3);
List<Integer> y = Arrays.asList(4, 5, 6);
List<List<Integer>> zipped = zip(x, y);
System.out.println(zipped);
}
Run Code Online (Sandbox Code Playgroud)
打印
[[1, 4], [2, 5], [3, 6]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8677 次 |
| 最近记录: |