在java arraylist中搜索而不返回值
我一直想把我的方法改成无效的。但每当我更改它时,它总是打印出书名和错误消息。如何将我的方法更改为无效在java arraylist中搜索而不返回值,java,search,arraylist,void,Java,Search,Arraylist,Void,我一直想把我的方法改成无效的。但每当我更改它时,它总是打印出书名和错误消息。如何将我的方法更改为无效 public int displayBookDetails(String bookName) { for (int i = 0; i < classrooms.size(); i++) { Library library = librarys.get(i); if (library.returnBookName().equals(bookName)) { S
public int displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return i;
}
}
return -1;
System.out.println ("Book name is not valid");
}
public int displayBookDetails(字符串bookName){
对于(int i=0;i
您还需要删除return语句(并用简单的return(无参数)替换第一个语句)
public void displayBookDetails(字符串bookName){
对于(int i=0;i
您可以使用返回
而不带值:
System.out.println(library.authorName());
return;
}
尝试这样的方法,我相信它会奏效:
public void displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return; // modified here
}
}
// modified here
System.out.println ("Book name is not valid");
}
public void displayBookDetails(字符串bookName){
对于(int i=0;i
当你找到这本书时,你可能仍然想要归还——这可能是你以前错过的:
public void displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return;
}
}
System.out.println ("Book name is not valid");
}
public void displayBookDetails(字符串bookName){
对于(int i=0;i
就我个人而言,我可能会将“搜索”与“显示”分开:
公共图书馆getBookDetails(字符串bookName){
对于(int i=0;i(请注意,在这一点上当然没有“索引”这类东西。如果您真的需要显示它,它将需要是
库的一部分)您试图更改为void的返回类型仅表示该方法返回的内容。但是,该方法可能有不同的副作用,如I/O,例如打印到控制台。不幸的是,在Java或大多数OOP语言中,没有办法限制副作用。函数式编程旨在消除函数中的所有副作用,以便更容易地对程序进行推理。您的代码不可编译-在返回后,方法中不得有任何语句。你想完成什么?是否要将方法签名返回类型更改为void
?那么您不能使用return
。或者您指的是System.out.println()方法吗?这将像前面提到的OP一样打印书名和警告。
public void displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return;
}
}
System.out.println ("Book name is not valid");
}
public Library getBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
return library;
}
}
return null;
}
public void displayBookDetails(String bookName) {
Library bookDetails = getBookDetails(bookName);
if (bookDetails == null) {
System.out.println ("Book name is not valid");
} else {
System.out.println(bookDetails.returnBookName());
System.out.println(bookDetails.authorName());
}
}