我从数据库中检索数据,然后将其添加到 list1.add()
列表中。列表 1 将有自己的项目类别,例如 Sciencebooks
,List2 将有 Fictionbooks
,List3 将有 Cosmeticbooks
等等。我不知道从一开始就会有多少列表,并且数据库可以在任何给定时间增加 list1
的大小。 , list2
, list3
, list4
,...list25
...等等,因此对新列表的每个实例进行硬编码将不起作用,特别是如果必须全局访问它们的话。
如果数据来自包含项目 book_type
的类别:sciencebook
,据我所知,我无法创建列表并将其命名为变量 List<Object> (book_type value from data) = new ArrayList<>
当检索数据时。
我不想用 List 创建一个主列表,因为如果我尝试保持每个类别的索引组织,当我需要向单独的类别添加新项目时,这会增加索引计数,我不这样做想要必须逐一增加一个长列表的每个索引,而不是单独的列表。除此之外,我不希望一个很长的列表必须循环/循环才能检索类别。
如何根据类别标记列表并使其在全局范围内可用?
最佳答案
对此的一种解决方案可能是使用 Map,其中键是图书类型,值是图书列表。
此解决方案的问题在于,尽管您解决了重新创建类似列表的初始问题,但存在类型删除,因为我们无法确切知道 map 中每个键存储的书籍类型。
interface Book {
void read();
}
class ScienceBook implements Book {
@Override void read() { }
}
class FictionBook implements Book {
@Override void read() { }
}
enum BookType {
SCIENCE,
FICTION;
}
Map<BookType, List<? extends Book>> books = new HashMap<>();
List<Book> books = books.get(BookType.SCIENCE);
关于java - 运行后实例化全局可访问列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60470152/