2012-07-17 51 views
0

我有一個類似對象(比如說玩具)的arraylist,我每天都會看到它。從對象列表中分離子列表

List<Toy> toyList; 

玩具bean將有四個屬性說,名稱,類型,代碼,數字。

  • 代碼可能是從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 

輕鬆創建這樣的報道淘汰名單我有,我會從兩個層面來隔離名單:第一個基於類型( Ø ne和兩個),然後根據今天可用的代碼(所有代碼不會每天都可用)。

什麼是最有效的方法來實現這一目標?

我可以通過迭代主列表和創建子列表來實現它。但是如何處理所有代碼每天都不可用的部分呢?如何僅爲今天可用的代碼創建子列表?

感謝您的閱讀!

回答

2

您可以遍歷所有玩具並獲取類型,代碼等的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()); 
} 
+0

篩選集合創建一個特定的集合屬性(在這種情況下的類型和代碼)? – Nik 2012-07-17 11:02:24

+0

我已經添加了一個例子。 – 2012-07-17 11:03:51