2014-11-06 59 views
0

我想在java中做同樣的事情,但我不知道如何去做。 我讀的是相當於應該是一個地圖,但如何實現它是我的問題。NSDictionary方法到java

我正在將一個IOs應用程序移植到android,我需要在我的應用程序中使用這個相同的東西。

-(NSDictionary*) states { 
NSString* state = @"SOME_STATE"; 
switch (self.state) { 
    case 1: 
     state = @"STATE1"; 
     break; 
    case 2: 
     state = @"STATE2"; 
     break; 
    case 3: 
     state = @"STATE3"; 
     break; 
    case 4: 
     state = @"STATE4"; 
     break; 
    case 5: 
     state = @"STATE5"; 
     break; 
    case 6: 
     state = @"STATE6"; 
     break; 
    case -1: 
     state = @"STATE-1"; 
     break; 
} 
return @{@"state": state}; 
} 

self.state是一個整數。

我會感謝一些幫助。

感謝

回答

1

這應該是你lokking什麼:

public Map<String,String> states(){ 
     String state = @"SOME_STATE"; 
     switch (this.state) { 
      case 1: 
       state = "STATE1"; 
       break; 
      case 2: 
       state = "STATE2"; 
       break; 
      case 3: 
       state = "STATE3"; 
       break; 
      case 4: 
       state = "STATE4"; 
       break; 
      case 5: 
       state = "STATE5"; 
       break; 
      case 6: 
       state = "STATE6"; 
       break; 
      case -1: 
       state = "STATE-1"; 
       break; 
     } 
     Map<String,String> map = new HashMap<String, String>(); 
     map.put("state", state); 
     return map; 

}

+0

這是又好又快。我現在明白了。謝謝 – Bozow 2014-11-06 12:22:04

+0

@jens只是好奇:我們可以簡單地做:'HashMap map = new HashMap ();'而不是'Map map..'?謝謝。 – Unheilig 2014-11-06 12:51:38

+0

@Unheilig你也可以做'HashMap map = new HashMap ();' – Jens 2014-11-06 12:54:04

0

這裏是一個簡單的解決方案。基本上它顯示了一個非常簡單的機制來的東西添加到您的地圖和檢索數據(如果沒有找到關鍵數據則返回第一個數據)

Map<Integer,String> map= new HashMap<Integer,String>(); 
//adding data to your map 

for(int i=1;i<=7;i++){ 
    map.put(i,"state"+1); 
} 

//retriving data 
int stateNum=1; 
if(map.containsKey(stateNum)){ 
System.out.println(map.get(stateNum); 
}else{ 
    //get the first element in the list assuming that's what you want 
    for(Entry<Integer,String> entry : map.entrySet()){ 
    System.out.println(entry.getValue(); 
    break; 
}