gpt4 book ai didi

java - 如何在类的 ArrayList 中搜索字符串

转载 作者:行者123 更新时间:2023-12-01 21:47:54 26 4
gpt4 key购买 nike

/**
* @param title title of the movie to search for
* @return the movie with the given title
* or null if there is no movie in the library with that title
*/
public Movie findMovieByTitle(String title)
{
for (Movie movie : movies){
if(movies.contains(title)){
return title;
}
else{
return null;
}
}
}

如何在ArrayList中找到标题?有与此类似的主题,但它们处理 String ArrayList,我正在另一个类中搜索标题。我需要创建一个局部变量并调用 Movie 类中的方法吗?

这是电影类:

public class Movie
{
private String title;
private int runLength; // length of the movie in minutes
private int starRating; // rating from 1 to 4 stars (0 = not rated yet)

/**
* Create a movie with the title, run length, and number of stars given
* @param aTitle title of the movie
* @param aRunLength run length of the movie in minutes
* @param aStarRating star rating of the movie, a value from 1 to 4 inclusive
*/
public Movie(String aTitle, int aRunLength, int aStarRating)
{
title = aTitle;
runLength = aRunLength;
setStarRating(aStarRating);
}

/**
* Create a movie with the title and run length given
* @param aTitle title of the movie
* @param aRunLength run length of the movie in minutes
*/
public Movie(String aTitle, int aRunLength)
{
title = aTitle;
runLength = aRunLength;
starRating = 0;
}

/**
* @return title of the movie
*/
public String getTitle()
{
return title;
}

/**
* @return run length of the movie in minutes
*/
public int getRunLength()
{
return runLength;
}

/**
* @return rating in stars of the movie; a value of 0 means "not rated"
*/
public int getStarRating()
{
return starRating;
}

/**
* Set the star rating of this movie to the value given
* @param newRating new star rating of the movie
*/
public void setStarRating(int newRating)
{
if (newRating >= 1 && newRating <= 4) {
starRating = newRating;
}
else {
System.out.println("Error: Valid range for star rating is 1 to 4");
}
}

/**
* Reset the star rating of this movie to "not rated"
*/
public void resetStarRating()
{
starRating = 0;
}

/**
* Increase the star rating of this movie by 1
*/
public void increaseStarRating()
{
if (starRating < 4) {
starRating = starRating + 1;
}
}

/**
* Decrease the star rating of this movie by 1
*/
public void decreaseStarRating()
{
if (starRating > 1) {
starRating = starRating - 1;
}
}

/**
* Print information on this movie
*/
public void printMovieInfo()
{
System.out.println("---------------------------------");
System.out.println(title);
System.out.println("Run length: " + runLength);
if (starRating == 0) {
System.out.println("Rating: (no rating)");
}
else {
System.out.println("Rating: " + starRating + " stars");
}
System.out.println("---------------------------------");
}

}

最佳答案

public Movie findMovieByTitle(String title) {
return movies.stream() // open a stream on the movies collection
.filter(movie -> movie.getTitle().equals(title)) // filter them based on their title
.findFirst() // get the first matching item
.get(); // this might throw NoSuchElementException if no element found
}

关于java - 如何在类的 ArrayList 中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712290/

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