gpt4 book ai didi

java - 多层 Hashmap 和 Arraylist

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:43 25 4
gpt4 key购买 nike

我正在开发一个 java 程序,该程序接受一个字符串并将其拆分为不同的级别。

Map<String, ArrayList<Map<String, ArrayList<Map<String,Map<String, String>>>>>> courseInfoMap = new HashMap<String, ArrayList<Map<String,ArrayList<Map<String,Map<String, String>>>>>>();
ArrayList<Map<String, ArrayList<Map<String,Map<String, String>>>>> courseNumList = new ArrayList<Map<String, ArrayList<Map<String,Map<String, String>>>>>();
Map<String, ArrayList<Map<String,Map<String, String>>>> courseNumTextbookMap = new HashMap<String, ArrayList<Map<String,Map<String, String>>>>();
ArrayList<Map<String,Map<String, String>>> listOfTextbooks = new ArrayList<Map<String,Map<String,String>>>();

Map<String, Map<String, String>> textbookMap = new HashMap<String, Map<String, String>>();
Map<String, String> isbnMap = new HashMap<String,String>();

本质上,我正在尝试获取类(class)代码 --> 类(class)编号列表 --> 类(class)编号 (key) --> 教科书列表 --> 教科书 --> isbn number(str) --> price

因为一些类(class)代码有多个类(class)编号,所以它指向一个数组列表。

我一直在向后添加东西,所以循环中循环。假设我没有搞砸那里。我一直在尝试以相同的方式遍历元素,假设它们可能已添加。

for(Map.Entry<String, ArrayList<Map<String, ArrayList<Map<String,Map<String, String>>>>>> entry : courseInfoMap.entrySet()){
System.out.println(entry.getKey());// COURSE CODE

for(int i = 0; i < entry.getValue().size();i++){//loops through arraylist of course numbers
System.out.println("i("+i+" - " + entry.getValue().get(i));

for(Map.Entry<String, ArrayList<Map<String,Map<String,String>>>> entry2 : entry.getValue().get(i).entrySet()){
System.out.println(" " + entry2.getKey());
// . . . and so on

这并没有奏效,它只是循环遍历所有内容。在每个级别上。

我的问题是如何浏览大量 HashMap 和/或是否有更好的方法来执行此操作。

例子:

AAAA
100
Name
###
$$$

Name
### <-- different from past
$$$
200
Name
###
$$$
BBBB
101
Name
###
$$$

最佳答案

这看起来非常复杂,坦率地说,如果我必须坚持这一点,我真的不会期待它。在我的脑海中,您可能会采用其他几种方法...

使用关系数据库

内存数据库或类似 mysql 或 postgresql 的数据库。它们专为此类事情而设计 - 组织数据并允许临时查询。

将数据放入对象

而不是 map 和列表,只需创建一个在一个地方定义大部分内容的对象。将 that 对象存储在 List 或 Map 中,然后直接搜索您需要的内容。如果您没有太多数据,则在挂钟时间内,暴力未索引搜索可能不会那么糟糕。

关于java - 多层 Hashmap 和 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20942468/

25 4 0