java - 对象的数组列表检查对象的特定值

标签 java


public class Library{
    private ArrayList<Book> bookList = new  ArrayList<Book>();
    public ArrayList<Book> viewBooksByAuthor(String author ){
        ArrayList<Book> b =new ArrayList<Book>();
        for(Book bl:bookList){
            if(bl.getAuthor().equals(author)){
                b.add(bl);
            }
            return b;
        }
        return b;
    }


}

public class Main{
    public static void main (String[] args) {
                        System.out.println("Enter the author name:");
                        String auth=sc.next();
                        ArrayList<Book> ba=l.viewBooksByAuthor(auth);
                        if(ba.isEmpty()){
                            System.out.println("None of the book published by the author "+auth);
                        }
                        else{
                            for(Book an:ba){
                            System.out.println("ISBN no: "+an.getIsbnno());
                            System.out.println("Book name: "+an.getBookName());
                            System.out.println("Author name: "+an.getAuthor());
                            }
                        }

    }

我有两个类 Book.java 和 Library.java 我想实现 viewAllBooks() 方法,在该方法中我将作者姓名作为参数传递,该方法将返回一个 ArrayList,其中包含该作者的所有书籍名称,但如果我添加同一作者的两本书,然后在搜索作者姓名后我只得到一本书的详细信息,我无法获得正确的输出,我该如何解决这个问题?

最佳答案

viewBooksByAuthor 中,for 循环内有一个 return 语句,它将在第一次迭代后立即退出函数。删除内部 return 语句(但保留外部)可能会解决您的问题。

关于java - 对象的数组列表检查对象的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60017830/

相关文章:

java - HttpURLConnection catch block 重复

java - Admob 广告无法根据屏幕方向正确调整大小 [包括图片]

Java正则表达式模式匹配以星号文字结尾的单词

java - JFace TreeViewer 在选择时展开或折叠

java - 为什么 Web 服务将所有请求和响应类型指定为字符串?

Android 中的 java.awt.Point 类

Java模式设计

java - Apache Camel : How to send two http requests in parallel and wait for the responses?

java - 为什么 Math.floor(1.23456789 * 1e8)/1e8) 返回 1.23456788

java - Java 编写 SQLite 数据库时遇到问题