Java 列表<;字符串>;减号列表<;字符串>;

Java 列表<;字符串>;减号列表<;字符串>;,java,list,Java,List,我有以下代码。首先,我尝试在名为“不可用”的列表中设置值。 接下来,在for-each中,我必须在列表domainStr-unavailable上生成一个循环。我怎么做 public Result execute(List<String> domainsStr) { Result result = new Result(); try { List<String> domains = domainSe

我有以下代码。首先,我尝试在名为“不可用”的列表中设置值。 接下来,在for-each中,我必须在列表domainStr-unavailable上生成一个循环。我怎么做

public Result execute(List<String> domainsStr) {

        Result result = new Result();       

        try {
            List<String> domains = domainService.findByNames(domainsStr);
            result.setUnavailable(domains);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }

        for (String domain : domainsStr) {
        ......
        }
        return result;
    }
    public static class Result {

    private List<String> unavailable = new ArrayList<>();


    public List<String> getUnavailable() {
        return unavailable;
    }

    public void setUnavailable(List<String> unavailable) {
        this.unavailable = unavailable;
    }

}
公共结果执行(列表域sstr){
结果=新结果();
试一试{
List domains=domainService.findByNames(domainsStr);
结果:setUnavailable(域);
}捕获(例外e){
logger.error(e.getMessage(),e);
}
for(字符串域:domainsStr){
......
}
返回结果;
}
公共静态类结果{
私有列表不可用=新建ArrayList();
公共列表getUnavailable(){
返回不可用;
}
公共无效设置不可用(列表不可用){
this.unavailable=不可用;
}
}
我必须在列表domainStr上生成一个循环

如果我理解正确,我认为您正在寻找以下方法:

从该列表中删除包含在 指定的集合(可选操作)

如果您想让
domainstr
保持不变,您可以创建一个临时列表并对其执行这些操作。

list templast=new ArrayList(domainstr);
List<String> tempList = new ArrayList<String>(domainsStr);
tempList.removeAll(result.getUnavailable());
for(String domain : tempList){ 
    .....
removeAll(result.getUnavailable()); 对于(字符串域:templast){ .....
我把它们放在一个诱惑列表中,这样你就不会丢失域str列表中的项目。

是对你最有帮助的函数。话虽如此,只有在你为
对象正确定义了equals方法的情况下,它才能正常工作。在这种情况下,它是一个
字符串
,所以它不重要。但是,jus别忘了这件事

所以只要说,
domainstr.removeAll(result.getUnavailable());

另外,如果结果类是静态的,为什么要在这里创建新对象

Result result = new Result();
result.setUnavailable(域);
可以改为
Result.setUnavailable(域);

Result result = new Result();