簡體   English   中英

遍歷數組列表Java

[英]looping through array lists Java

我正在從Excel工作表中讀取項目列表。 每個項目名稱都有一個從同一列表定義的父項目名稱(作為單獨的列)。 因此,這形成了一個樹層次結構,其中一個項目是同一列表中另一個項目的父項,並且父項也有多個子項。 項目名稱在整個列表中不是唯一的。 項目僅在特定父項下是唯一的。

從輸入文件讀取時,將生成每個項目的ID。 現在,我想為每個項目獲取其父項目的ID。

對於從文件中讀取的當前記錄,可以在我們尚未讀取的行下顯示父項,因此我們不知道其父項的ID。

當我想到一種邏輯時,它會導致反復遍歷數組列表和hashmap鍵集來獲取它。

我需要幫助以獲得更好的邏輯來解決此問題。 提前致謝!

編輯1:

現在我在定義Excel工作表本身的結構時遇到問題。 我需要它對用戶友好。 名稱不唯一時,如何為項目記錄定義父項? 我應該強迫用戶自己按層次結構順序提供excel,以便我可以輕松地標識子項的父項嗎?

您可以使用一個簡單的

HashMap<Parent, List<Child>>允許與每個父鍵一起存儲多個值-只需根據需要將子級附加到鍵列表中。 或者,考慮使用MultiMap來保存數據。

您可以一次簡單地閱讀項目並創建一個(名稱,ID)的HashMap。
然后再次遍歷這些項目並分配父ID,從HashMap獲取它。
這樣,您將僅在項目列表上迭代2次,這將使其時間復雜度為O(n)。

但是,如果您沒有唯一的名稱,那么,如果在項目上僅具有其父名稱,則可能找不到該項目的唯一父項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM