public class BizPotentialCustomerVo { String userName; String customerClassify; String mycount; } List<BizPotentialCustomerVo> customerVoList; 结果横转纵
时间: 2024-03-01 07:52:08 浏览: 80
假设您要将包含在`customerVoList`中的数据从横向转换为纵向,其中的每个对象都包含了`userName`、`customerClassify`和`mycount`三个属性。您可以使用Java 8的流(Stream)API来完成这个操作。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class CustomerListStreamExample {
public static void main(String[] args) {
// 定义一个包含数据的列表
List<BizPotentialCustomerVo> customerVoList = new ArrayList<>();
customerVoList.add(new BizPotentialCustomerVo() {{ setUserName("User1"); setCustomerClassify("Class1"); setMycount("10"); }});
customerVoList.add(new BizPotentialCustomerVo() {{ setUserName("User1"); setCustomerClassify("Class2"); setMycount("20"); }});
customerVoList.add(new BizPotentialCustomerVo() {{ setUserName("User2"); setCustomerClassify("Class1"); setMycount("30"); }});
customerVoList.add(new BizPotentialCustomerVo() {{ setUserName("User2"); setCustomerClassify("Class2"); setMycount("40"); }});
// 将横向列表转换为纵向列表
Map<String, Map<String, String>> verticalMap = customerVoList.stream()
.collect(Collectors.groupingBy(BizPotentialCustomerVo::getUserName,
Collectors.toMap(BizPotentialCustomerVo::getCustomerClassify,
BizPotentialCustomerVo::getMycount)));
System.out.println(verticalMap);
}
}
```
在这个代码中,我们首先定义了一个包含数据的`customerVoList`列表,其中包含了四个对象,每个对象都包含了`userName`、`customerClassify`和`mycount`三个属性。接着,我们使用流API的groupingBy操作按照`userName`属性对这些对象进行分组,然后使用toMap操作将每个分组内的对象按照`customerClassify`属性和`mycount`属性转换为一个键值对。最后,我们将分组后的结果收集到一个新的Map中,并将其打印出来。这样,我们就将一个横向的列表转换为了一个纵向的Map。
阅读全文