2015-05-28 66 views
0

我想創造一些結構,像這樣:哪個結構需要任務?

company { 
    id: 1, 
    name:'first', 
    departments: [ 
       { 
        department { id:1 } 
       }, 
       { 
        department { id: 2 } 
        } 
       } 
       ] 
     }, 
     { 
     id: 2, 
     name:'second', 
     departments: [ 
         { 
         department { id: 1 } 
         }, 
         { 
         department { id: 2 } 
         } 
        ] 
     } 

看起來像樹。

請幫忙,我需要使用哪些工具(集合,地圖)或其他東西來實現此任務。謝謝。 對於容易的問題抱歉。

如何爲兩個實體創建查詢? 的公司我做: List company = companyRepository.findAll(); 和部門:

List departmentsByCompany_id = new LinkedList(); 

    Iterator<Company> iter = company.iterator(); 
      while (iter.hasNext()) { 
       departmentsbycompany_id.add(iter.next().getDepartments()); 
      } 

但其doen`t工作。

如何在一個集合添加了兩個實體)))

+1

你需要帶'id'字段的'Department'類和'Company'類,其中字段'id'和'Department'集合 – NeplatnyUdaj

回答

3

像這樣的事情?

class Company { 
    int id; 
    String name; 
    Set<Department> departments; 

    // getters, setters, logic, etc. 
} 

class Department { 
    int id; 

    // getters, setters, logic, etc. 
} 

然後你的整體結構看起來像Company對象的集合(雖然有點畸形在你的例子):

Set<Company> 

這不是一個真正的tree,它只是一個對象的集合,每個的包含另一種對象的集合。一棵樹會更加遞歸,其中每個對象都引用一個父對象或一組相同類型的子對象。

+2

不要忘記重寫** equals(Object o)**和** hashcode()**方法:) – nafas

+0

@nafas:良好的捕獲。對於一個'Set <>'這將是非常有用的:)(我想任何類型的集合都可以在一個小撮中工作,我假設需要集合中的唯一性。) – David

+1

@MattBearson:評論中的代碼非常困難讀。也許你可以在你的問題中進一步解釋問題?請注意,如果您將一個全新的問題複製到原始問題上,那麼可能值得問一個新的Stack Overflow問題。原始問題的劇烈變化使現有答案無效並使線程混淆。 – David

1

您可以創建兩個類,公司和部門爲: 類公司{INT ID;字符串名稱;部門部門} 然後,您可以使用收集來存儲包含部門詳細信息的公司對象。

1

A公司與客體3個字段:

long id 

String name 

Set<Department> departments 

和部門之客體有一個字段:

long id 
0

這幾乎看起來像一個JSON對象。

如果你想直線上升的Java結構,您也可以操作,你的結構看起來非常簡單的從你的結構示例:

你想Company類的列表。

每個Company類應該有三個字段:id,nameDepartment類的列表。

每個Department類應該有一個字段 - id