gpt4 book ai didi

java - 运行后实例化全局可访问列表

转载 作者:行者123 更新时间:2023-12-02 01:02:38 25 4
gpt4 key购买 nike

我从数据库中检索数据,然后将其添加到 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/

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