我是 Java 新手。谁能帮我完成这个作业吗?
public class Book {
private Integer id;
private String title;
private String author;
private Integer pages;
}
我应该使用什么Java数据结构来存储此类的对象?我希望它能够通过标题搜索对象。例如,如果我搜索“游戏”,程序应该返回标题中包含搜索词的书籍(例如“权力的游戏”、“某物的游戏”、“游戏 blabla”)。目前还没有必要使用多个字段。
还有比迭代对象更有效的方法吗?
我尝试使用 HashSet 和 TreeSet。但他们甚至没有 get() 方法。所以我认为它们不是合适的数据结构。
令我感兴趣的一件事是使用K-D 树。但这会引发类似的问题,因为 k-d 树不允许通过使用索引来获取对象。我需要索引,因为我还需要使这本书对象可编辑。 (我正在考虑通过其索引获取对象,然后更新其字段)。有解决这个问题的方法吗?如果我使用对象的 id 字段而不是索引,程序会高效吗?
使用任何类型的列表来存储您的书籍对象。 然后流式传输该列表并使用过滤功能。在您的情况下,startsWith()应该可以很好地应用过滤器,您可能还需要根据您的要求使用LowerCase()/ toUpperCase()或ignoreCase()函数。最后,使用collect函数将其收集到列表中。
List<Item> booksHavingSameTitle= booksHavingSameTitle.stream()
.filter(item -> item.title.startsWith("game"))
.collect(Collectors.toList())