Java,Python-如何将Java FlatMap转换为Python链接列表
我正在通过线性规划研究运输问题的公式。我主要是在网上搜索,找到了一个。但是,我必须用Python编写全部内容。我正在把它转换成Python。我不认为自己擅长Java,不认为自己擅长Python。我试着转换一下。一切都很好,但我不知道如何转换下面的代码段,它涉及Java的LinkedList和流函数Java,Python-如何将Java FlatMap转换为Python链接列表,java,python-2.7,linked-list,code-conversion,flatmap,Java,Python 2.7,Linked List,Code Conversion,Flatmap,我正在通过线性规划研究运输问题的公式。我主要是在网上搜索,找到了一个。但是,我必须用Python编写全部内容。我正在把它转换成Python。我不认为自己擅长Java,不认为自己擅长Python。我试着转换一下。一切都很好,但我不知道如何转换下面的代码段,它涉及Java的LinkedList和流函数 static LinkedList<Shipment> matrixToList() { return stream(matrix) .flatMap(ro
static LinkedList<Shipment> matrixToList() {
return stream(matrix)
.flatMap(row -> stream(row))
.filter(s -> s != null)
.collect(toCollection(LinkedList::new));
}
我们可以把它分成几个步骤。您从一个
矩阵
变量开始,该变量是一个包含类型为shipping
的iterable的iterable
流化对象意味着对流的每个元素执行操作
流上的映射
意味着您获取每个对象,比如类型A
,并将其转换为某种类型B
。flatMap
是当map
将生成流时使用的一种特殊情况flatMap
允许您将这些流连接到单个流中
假设每个A
映射到3个对象的流{A1,A2}->{{B11,B12,B13},{B21,B22,B23}
flatMap
将使这一个流{A1,A2}->{B11,B12,B13,B21,B22,B23}
在这种情况下,矩阵
生成一个行
对象流。每个行
都映射到一个装运
流中,flatMap
用于连接它们
最后,filter
用于删除空装运(即值为null),并调用collect
方法将装运流
转换为列表
在没有流的情况下重新创建此文件可能会像下面这样:
static LinkedList<Shipment> matrixToList() {
LinkedList<Shipment> result = new LinkedList<>();
for (List<Shipment> row : matrix) {
for (Shipment shipment : row) {
if (shipment != null) {
result.add(shipment );
}
}
}
return result;
}
静态链接列表matrixToList(){
LinkedList结果=新建LinkedList();
对于(列表行:矩阵){
对于(装运:世界其他地区){
如果(装运!=空){
结果。添加(装运);
}
}
}
返回结果;
}
static LinkedList<Shipment> matrixToList() {
LinkedList<Shipment> result = new LinkedList<>();
for (List<Shipment> row : matrix) {
for (Shipment shipment : row) {
if (shipment != null) {
result.add(shipment );
}
}
}
return result;
}