【发布时间】:2014-07-29 20:41:31
【问题描述】:
我正在编写简单的图书管理(图书馆)应用程序,但我确信正确的数据表示。
我有这样的课程:
Book (isbn, author, title, libraryIdNumber)
BookDatabase (collection of Books)
在这个例子中,BookDatabase 中的主要数据结构是一个
Map<Integer, Book> booksById;
其中 key 是图书的唯一库标识符(例如增量 int 值),该值只是 Book 实例。
现在很容易通过 ID 找到一本书,但很难找到所有同名的书。所以我需要另一个数据结构,比如
Map<String, List<Book>> booksByTitle;
其中key为书名,value为图书馆内所有同名图书的列表(例如10本《狮子王》)。
我知道存储此类数据的最佳方式就是数据库,但问题更笼统:
可以将相同的数据存储在一个存储类中的多个数据结构中还是内存效率低下?或者,在实际需要时(例如通过调用 Map.values() 方法)获取数据的其他表示可能会更好?
您认为在这种情况下最好的方法是什么?
【问题讨论】:
-
对于 booksByTitle,您可以使用 multimap。
-
是的,我读过它,但在这种情况下,问题是关于 java 集合框架的。谢谢!
标签: java data-structures collections map