java - 需要帮助减少重复代码

标签 java duplication

我是初学者,讲师告诉我要减少这两个函数中的重复代码。这是一个图书馆。我想我还需要一种方法来检查数组。我所需要的只是一些我需要使用的建议/原则。我会自己写方法。谢谢! getBooks() 返回存储书籍的 ArrayList。

public List<Book> getAvailableBooks() {
    List<Book> result = new ArrayList<Book>();
    for (int i = 0; i < this.getBooks().size(); i++) {
        if (this.getBooks().get(i).getPerson() == null) {
            result.add(this.getBooks().get(i));
        }
    }
    return result;
}

public List<Book> getUnavailableBooks() {
    List<Book> result = new ArrayList<Book>();
    for (int i = 0; i < this.getBooks().size(); i++) {
        if (this.getBooks().get(i).getPerson() != null) {
            result.add(this.getBooks().get(i));
        }
    }
    return result;
}

最佳答案

您已经有了两种方法。您不能通过再添加一个来减少。

但是您可以使用一种方法而不是两种方法。例如

public List<Book> getBooks(boolean available) {

现在你有了一种方法,你可以告诉它你想要可用的还是不可用的书。

关于java - 需要帮助减少重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641489/

相关文章:

c# - 为多语言 umbraco 站点复制内容

java - 如何使用递归计算树中的最高级别?

java - 双向链表问题。一次迭代会是什么样子?

java - SQLite (JDBC) 不写入数据

c# - 在存储库接口(interface)的各种实现上使用相同的测试套件

algorithm - 处理单元测试和集成测试之间的重复

mysql - 检查多个键是否有重复项时插入的 SQL 代码

java - 将 EmailMessage 转换为 ByteArrayOutputStream

java - 为什么 Java 中 File.length() 的大小与 linux du 命令的大小不同