解释下 Accumulate names into a List List<String> list = people.stream().map(Person::getName).collect(Collectors.toList());
时间: 2024-06-04 18:11:31 浏览: 149
这是一个Java 8的Stream操作,它从一个Person对象的流中,将每个Person的名字提取出来,并将其添加到一个字符串列表中。具体来说,map(Person::getName) 将流中的每个Person对象都映射为其名称,collect(Collectors.toList()) 将所有名称收集到一个新的List<String>对象中。
相关问题
list<map<string, object>>stream拼接
可以使用`std::accumulate`函数对多个`list<map<string, object>>`进行拼接。示例代码如下:
```c++
#include <iostream>
#include <list>
#include <map>
#include <string>
#include <algorithm>
int main() {
std::list<std::map<std::string, int>> stream1 = {
{{"a", 1}, {"b", 2}},
{{"c", 3}, {"d", 4}}
};
std::list<std::map<std::string, int>> stream2 = {
{{"e", 5}, {"f", 6}},
{{"g", 7}, {"h", 8}}
};
std::list<std::map<std::string, int>> result;
std::accumulate(stream1.begin(), stream1.end(), std::back_inserter(result));
std::accumulate(stream2.begin(), stream2.end(), std::back_inserter(result));
for (const auto& m : result) {
for (const auto& p : m) {
std::cout << p.first << ": " << p.second << " ";
}
std::cout << std::endl;
}
return 0;
}
```
输出结果为:
```
a: 1 b: 2
c: 3 d: 4
e: 5 f: 6
g: 7 h: 8
```
namespace B1 { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... EventAction::EventAction(RunAction* runAction) : fRunAction(runAction) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::BeginOfEventAction(const G4Event*) { fEdep = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::EndOfEventAction(const G4Event*) { // accumulate statistics in run action fRunAction->AddEdep(fEdep); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... }
这是一个命名空间B1中的代码片段,其中定义了一个名为EventAction的类。该类具有构造函数EventAction(RunAction* runAction),以及成员函数BeginOfEventAction(const G4Event*)和EndOfEventAction(const G4Event*)。
在BeginOfEventAction函数中,fEdep变量被初始化为0。
在EndOfEventAction函数中,通过调用fRunAction->AddEdep(fEdep),将fEdep的值累积到RunAction类的成员变量中,用于统计计算。
阅读全文