List <String>减去List <String>

use*_*896 4 java list

我有以下代码.在第一个我尝试在列表中设置名为'不可用'的值.接下来,在每个我必须在列表domainStr上产生一个循环减去不可用.我该怎么做?

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;
    }

}
Run Code Online (Sandbox Code Playgroud)

Hri*_*esh 7

removeAll(Collection c)是对你最有帮助的函数.话虽如此,只有在为Domain对象正确定义了equals方法的情况下,这才能正常工作.在这种情况下它是String如此无关紧要.但是,只是为了记住它.

所以说, domainsStr.removeAll(result.getUnavailable());

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

Result result = new Result();
Run Code Online (Sandbox Code Playgroud)

result.setUnavailable(domains); 可以改为 Result.setUnavailable(domains);