gpt4 book ai didi

java - 仅使用 If 语句查找数组中的元素

转载 作者:行者123 更新时间:2023-11-30 07:45:02 25 4
gpt4 key购买 nike

我之前发过一篇关于类似主题的帖子。但是,我想我会澄清一些事情并改变我的问题。

所以我正在做的这个项目让我很困惑。我只有 5 周的时间,问题是要我创建一个方法来返回照片数组中的照片标题。每张照片都有一个标题。这是代码:

public class Album {

private String albumtitle;
private ArrayList<Photo> photos;

/**
* This constructor should initialize the
* instance variables of the class.
*/
public Album(String title) {

this.albumtitle = title;
photos = new ArrayList<>();

}

/** When passed a title, this method should
* return the first Photo object in the album with
* a matching title. If there is no such object, it
* should return null.
*
* @param title A title to search for
* @return A Photo object, or null
*/
public Photo searchByTitle(String title) {

//TODO enter code here
}

}

现在,我的讲师说不要使用 for 循环,因为项目是从第 1 章到第 4 章(第 5 章是 for 循环/迭代)

https://lms.uwa.edu.au/bbcswebdav/pid-1134902-dt-content-rid-16529804_1/courses/CITS1001_SEM-2_2018/lectures/BooksReadJournal.java.pdf

这是讲师在不使用 for 循环的情况下对有关书籍的程序所做的示例。但是,请注意它有 (int index) 作为参数,然后使用 String title = bookTitles.get(index)

我的意思是,如果不使用 for 循环,我该怎么做?我不希望他们觉得我从互联网上复制了一些我们还没有学到的东西。

谢谢,

最佳答案

如果您只能避免使用 for-loop 并仅使用 if-else,则递归调用是一种替代方法:

public Photo searchByTitle(String title) {
return searchByIndex(title, 0);
}

private Photo searchByIndex(String title, int index) {
if (index < photos.size()) { // Has next? If yes ...
Photo next = photos.get(index); // Get next
if (!title.equals(next.getPhotoName())) { // Does the title match? If not...
return searchByIndex(title, ++index); // Check the next one
} else return next; // Otherwise you found it
} return null; // ... if no next, return null
}

我假设 Photo 类有一个字段 String photoName 可以通过 getter 访问,它将与 String title 进行比较。

关于java - 仅使用 If 语句查找数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52115209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com