将InternetAddress集转换为一组String

she*_*221 1 java collections java-stream

我有一组InternetAddress recipients是我的收件人.我需要将它转换为Set.我用了

Set<String> reci = new HashSet<>();
for(InternetAddress recipient : recipients){
    reci.add(recipient.toString());
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,是否可以避免使用循环并使用java 8 map和stream执行此操作.我尝试了以下但是没有用.

recipients.stream().map(String::new).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

这给出了错误'无法解析构造函数字符串'.

azr*_*zro 5

.map(String::new)手段element -> new String(element)并用一个String构造InternetAdress不存在

你需要

recipients.stream().map(InternetAddress::toString).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)