我正在研究一個接受字符串並將其分成不同層次的java程序。多層HashMap和Arraylist
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>();
從本質上講, 我想有一個課程代碼 - >當然NUM列表 - >當然NUM(鍵) - >教材列表 - >教科書 - >國際標準書號( str) - >價格
因此,因爲某些課程代碼有多個課程編號,它指向一個arraylist。
我一直在向後添加東西,所以循環內循環。假設我沒有在那裏搞砸。我一直試圖以相同的方式循環遍歷元素,假設它們可能被添加。
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
這沒有奏效,它只是循環遍歷所有東西。在每個級別上。
我的問題是我如何瀏覽大量的hashmaps和/或有沒有更好的方法來做到這一點。
例子:
AAAA
100
Name
###
$$$
Name
### <-- different from past
$$$
200
Name
###
$$$
BBBB
101
Name
###
$$$
不要因爲這麼多的嵌套關卡而傷害自己。在類中封裝和構建數據。 –