2016-01-12 16 views
-2

基本上我有一個需要分類的項目名稱數組。這些項目需要根據條件進行分類。例如,項目名稱需要以book結束。什麼是分類的好方法?從條件分類項目

例如,這些類:

  • 圖書
  • 食品

陣列內:[狗書,生肉類,魚類,另一個樣品書]

+0

你張貼陣列的例子,你從哪裏獲得條件?你問的是數據結構還是比較函數? –

+0

@PritamBanerjee - 我剛剛編輯了我原來的帖子。我在詢問數據結構。 –

+0

你可以檢查我在答案中發佈的數據結構。您可以使用該類或數據結構。雖然推薦使用類方法。 –

回答

-1

有String類中的很多方法可以做到這一點,您可以使用endsWith(),contains(),startsWith()方法來查看一個String值是否有一些子字符串,然後相應地對它們進行分類。

+1

我不認爲這就是他所問的。他想知道如何對它進行分類。我相信他已經知道String.endsWith()。 – Bug

+0

@ Bug,是的。而不是有很多if else語句..我正在尋找更好的OO方式來做到這一點。 –

+0

然後使用一個開關,並使用不同的情況進行分類。 –

1

可以使用的東西LinkedHashMap中像這樣,只是通過原迭代,

例如:

HashMap<String, String> originalmap = new HashMap<String,String>(); 

Map<String, String> newmap = new LinkedHashMap<String, String>(); 

for(Entry<String,String> e : originalmap.entrySet()){ 
    if(e.getKey().endsWith("book"){ 
     newmap.add(e.getKey(), e.getValue()); 
    } 
} 

//newmap will have all the book entries in the order they were set 
0

既然有父子樣的關係,我建議你使兩類:

  1. 類別
  2. 項目

    類範疇,可就是這樣

    public class Category { 
        private ArrayList<Items>; 
    //setters and getters 
    } 
    

或者如果你是完全依賴於數據結構,你可以使用地圖這樣的:

Map dataStructure = new HashMap<String, String[]>(); 
String category= "book"; 
String items[] = {"Dog book", "Another sample book"}; 
dataStructure.put(category,items);