gpt4 book ai didi

java - 如何搜索对象中的数据并转换为列表

转载 作者:行者123 更新时间:2023-12-02 03:57:06 26 4
gpt4 key购买 nike

我想从对象中搜索值并将结果转换为列表

我试图获取数据对象名称“data”,并且我想搜索具有“querytext”的每个项目。如何将对象数据转换为列表

public class SimpleMovieSearchService implements MovieSearchService {
@Autowired
private MovieDataService movieDataService;

@Override
public List<Movie> search(String queryText) {
MoviesResponse data =movieDataService.fetchAll();
List<Movie> result = data.stream() // problem in this line
.filter(item -> item.getTitle().equals("queryText"))
.collect(Collectors.toList());

return result;
}
}

MovieData.java

public class MovieData {
private String title;
private int year;
private List<String> cast;
private List<String> genres;

getter and setter
}

Movie.java

public class Movie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String name;

@ElementCollection(fetch = FetchType.EAGER)
private List<String> actors = new ArrayList<>();

getter and setter
}

编辑

MovieResponse.java

public class MoviesResponse extends ArrayList<MovieData> {
}

MovieDataService.java

public interface MovieDataService {
MoviesResponse fetchAll();
}

我得到的数据类型是 MovieData 列表,但我想要电影列表中的结果如何修复此问题或其他方法。并且无需更改 Movie.javaMovieData 中的任何内容.java

更新

现在我可以用这种方法了

MoviesResponse a = movieDataService.fetchAll();
List<Movie> result = a.stream()
.map(movie -> new Movie(movie.getTitle()))
.filter(movie -> movie.getName().equals(queryText)) //this line
.collect(Collectors.toList());

如果数据是“banana”、“nature”、“red”,然后查询文本是“na”,我想要的结果是“banana”和“nature”。在sql中,它可以使用“like”。如何在此过滤器中使用“like”?

最佳答案

尝试使用流图

data.stream() // problem in this line 
.filter(item -> item.getTitle().equals("queryText"))
.map(movie -> {
//logic to transform MovieResponse in Movie here
})
.collect(Collectors.toList());

查看更多信息:https://dzone.com/articles/how-to-use-map-filter-collect-of-stream-in-java-8

关于java - 如何搜索对象中的数据并转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752260/

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