如何取出List<Pair<ItemA, ItemB>>的ItemA作为List
时间: 2023-11-11 18:08:07 浏览: 39
您可以使用Java 8的Stream API来从List<Pair<ItemA, ItemB>>中提取ItemA,如下所示:
```
List<Pair<ItemA, ItemB>> pairs = ...; // 假设已经有了List<Pair<ItemA, ItemB>> pairs
List<ItemA> itemAs = pairs.stream()
.map(pair -> pair.getFirst())
.collect(Collectors.toList());
```
这里使用了Stream的map操作将每个Pair中的ItemA取出来,然后使用collect操作将结果收集到一个新的List中。
相关问题
解释下面代码每一行的意思 <style> .grid-container{ display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 100px; grid-gap: 0px; //设置了单元格之间的空隙为0。 } .grid-item{ border: 1px solid black; font-size: 20px; } .itema{ grid-column: 1/span 2; grid-row: 1; } .itemb{ grid-column: 3; grid-row: 1/span 2; } .itemc{ grid-column: 1; grid-row: 2/4; } .itemd{ grid-column: 2; grid-row: 2; } .iteme{ grid-column: 2/4; grid-row: 3; } </style> </head> <body> <div class="grid-container"> <div class="grid-item itema"></div> <div class="grid-item itemb"></div> <div class="grid-item itemc"></div> <div class="grid-item itemd"></div> <div class="grid-item iteme"></div> </div> </body>
这段代码是用来创建一个网格布局的,下面是每行代码的意思:
1. `.grid-container` 是一个类选择器,用于选择一个包含网格元素的容器。
2. `display: grid;` 是一个CSS属性,用于将容器设置为网格布局。
3. `grid-template-columns: 100px 100px 100px;` 定义了列的数量和宽度,这里有3列,每列宽度为100像素。
4. `grid-template-rows: 100px 100px 100px;` 定义了行的数量和高度,这里有3行,每行高度为100像素。
5. `grid-gap: 0px;` 设置了单元格之间的空隙为0像素。
6. `.grid-item` 是一个类选择器,用于选择网格布局中的单元格。
7. `border: 1px solid black;` 是一个CSS属性,用于设置单元格的边框宽度和颜色。
8. `font-size: 20px;` 是一个CSS属性,用于设置单元格中文本的字体大小。
9. `.itema`, `.itemb`, `.itemc`, `.itemd`, `.iteme` 是类选择器,用于选择具有不同属性的网格项目。
10. `grid-column` 属性指定了单元格所跨越的列数和位置。
11. `grid-row` 属性指定了单元格所跨越的行数和位置。
优化这段代码 res.data.availablePlayItemVoList.forEach((item: any) => { this.playDateProductInfoList.forEach((v: any) => { v.playScreeningList.forEach((items: any) => { if (items.playItemCode == item.playItemCode) { this.$set( items, "availableTotal", item.availableTotal != null ? item.availableTotal : null ); } if (item.screeningList.length > 0) { item.screeningList.forEach((itemA: any) => { if (items.sysTimeQuantumList != null) { items.sysTimeQuantumList.forEach((itemB: any) => { if (itemA.screeningCode == itemB.screeningCode) { this.$set( itemB, "surplusTotal", itemA.surplusTotal != null ? itemA.surplusTotal : null ); } }); } }); } }); }); }); });
这段代码也可以使用ES6的数组方法进行优化,如下所示:
```javascript
res.data.availablePlayItemVoList.forEach(item => {
this.playDateProductInfoList.forEach(v => {
v.playScreeningList.filter(items => items.playItemCode === item.playItemCode)
.forEach(items => {
this.$set(
items,
"availableTotal",
item.availableTotal != null ? item.availableTotal : null
);
item.screeningList.forEach(itemA => {
if (items.sysTimeQuantumList != null) {
items.sysTimeQuantumList.filter(itemB => itemA.screeningCode === itemB.screeningCode)
.forEach(itemB => {
this.$set(
itemB,
"surplusTotal",
itemA.surplusTotal != null ? itemA.surplusTotal : null
);
});
}
});
});
});
});
```
同样地,使用`filter`方法可以减少循环嵌套,使代码更加清晰易读。另外,可以使用ES6的箭头函数来简化代码。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)