私のコードでは、以下のように相互にインターリーブされた一連の LinkedHashMaps を使用しています。コードは問題なく、重複を自動的に削除することを除いて、必要な結果が得られます。重複を保持するために TreeMap または Set を使用する方法がわかりませんでした。
LinkedHashMap<String, LinkedHashMap<Integer, LinkedHashMap<String, Vector<String>>>>
dataAll =new LinkedHashMap<String, LinkedHashMap<Integer, LinkedHashMap<String,
Vector<String>>>>();