小编And*_*bor的帖子

使用 Java 8 创建 ImmutableMap

如何使用 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)

但我不知道如何从这里继续。

java guava java-stream collectors

7
推荐指数
1
解决办法
1480
查看次数

没有运算符“&lt;&lt;”匹配但“&gt;&gt;”有效

我在 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)

c++ file-io stream

0
推荐指数
1
解决办法
44
查看次数

标签 统计

c++ ×1

collectors ×1

file-io ×1

guava ×1

java ×1

java-stream ×1

stream ×1