如何使用 Java Stream API 编写以下方法?
public Map<String, String> getMap() {
Map<String, String> mapB = new HashMap<>();
for (String parameterKey : listOfKeys) {
String parameterValue = mapA.get(parameterKey);
mapB.put(parameterKey, Objects.requireNonNullElse(parameterValue, ""));
}
return ImmutableMap.copyOf(mapB);
}
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
return listOfKeys.stream()
.map(firstMap::get)
.collect( ? )
Run Code Online (Sandbox Code Playgroud)
但我不知道如何从这里继续。
我在 C++ 中遇到了“没有运算符“<<”匹配这些操作数”错误(在 fout << dog 处)的问题。这是我的代码的样子:
int FileRepository::addDog(const Dog& dog)
{
if (this->findDog(dog.getName()) != -1)
return -1;
std::ofstream fout;
fout.open(this->fileName.c_str(), std::ios_base::app);
fout << dog;
fout.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
ostream& operator<<(ostream& outputStream, Dog& dog)
{
outputStream << dog.name << ", " << dog.breed << ", " << dog.birthDate << ", " << dog.numberOfShots << ", " << dog.photo << ", " << '\n';
return outputStream;
}
Run Code Online (Sandbox Code Playgroud)
我还导入了特定的头文件和库,并且“>>”运算符有效。
在这里它有效:
void FileRepository::writeVectorToFile(std::vector<Dog> vectorOfDogs)
{
ofstream fout(this->fileName.c_str());
for (Dog dog : vectorOfDogs)
fout …Run Code Online (Sandbox Code Playgroud)