簡體   English   中英

將子列表與對象列表分離

[英]segregating sub lists from a list of objects

我有一個每天都會得到的類似物體(例如玩具)的數組列表。

List<Toy> toyList;   

玩具豆將具有四個屬性,分別是名稱,類型,代碼,數字。

  • 代碼可以是1到10之間的任何整數(不必每天都得到所有代碼)
  • 類型可以是字符串“一個”或字符串“兩個”

我想輸出一個報告,總結玩具的類型和代碼,如下所示:

One

name     type    number
--------------------------------
abc      1       19
pqr      1       20

Code 1 total     39

lmn      9       15

Code 9 total     15  

========================================  

Two

name     type    number
--------------------------------
hmn      6       18
efg      6       20

Code 6 total     38

jkl      5       15

Code 5 total     15 

為了輕松地從列表中創建此類報告,我必須將列表分為兩個級別:首先基於類型(一個和兩個),然后基於當今可用的代碼(並非每天都有所有代碼) 。

最有效的方法是什么?

我可以通過遍歷主列表並創建子列表來實現。 但是,如何處理所有代碼每天都將不可用的部分呢? 如何僅為今天可用的代碼創建子列表?

謝謝閱讀!

您可以遍歷所有玩具並獲取Set ,類型,代碼等。您可能希望將其設為SortedSet,以便它們以一致的順序出現。

Set<Type> types = EnumSet.noneOf(Type.class);
SortedSet<String> codes = new TreeSet<String>();
for(Toy toy: toys) {
   types.add(toy.getType());
   codes.add(toy.getCode());
}

查看Lambdaj庫的分組功能 (滾動到“分組項目”部分)。

您可以嘗試使用以下任何一種庫:

暫無
暫無

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

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