2017-09-17 8 views
1

私はこの2つを持っていますArrayLists。私はstationNames配列を反復処理し、インデックスを取得する必要があります。次に、同じインデックスの値を返しますstationIDs配列。どのように私はこれを達成するのですか?私を助けてください。 stackoverflow上の既存のソリューションはこれで動作しませんでした。私はアンドロイド開発に新しいです。Android ArrayListを繰り返してインデックスを取得する方法

私は次のコードのような配列を反復処理するとき、それはここArray type expected; found: java.util.ArrayList<java.lang.String>

ArrayList<String> stationNames = new ArrayList<String>(); 
ArrayList<String> stationIDs = new ArrayList<String>(); 

stationName = "Hello" 

int index = -1; 
try { 
    for (int i = 0; i < stationNames.length; i++) { 
     if (stationNames[i].equals(stationName)) { 
      index = i; 
      break; 
     } 
    } 
} 
catch (Exception e){ 
    Log.d("Excetion!",e.getLocalizedMessage()); 
} 
return stationIDs[index]; 
+0

局名からマップを作成することを検討して - >局IDを、各ルックアップではなく、OのO(1)(n)は、downvote理由 – orip

答えて

1

try catchとforループのすべてがありません。私は次のように、1行のコードで同じ作業を行うことができます...

int output = stationIDs.get(stationNames.indexOf(stationName)); 

はあなたの助けありがとうございました!

3

stationNamesを言って、エラーを与えるには、配列が、ArrayListではありません。その位置を返す場合は-1ません

return stationNames.indexOf(stationName); 

を、それがリストに発見された場合:

さらに簡単行うには:だから、あなたは.size()を使用し、それに.lengthを使用することはできません。

-1

だけArrayListオブジェクトのindexOfメソッドを使用します。

ArrayList<String> stationNames = new ArrayList<String>(); 
ArrayList<String> stationIDs = new ArrayList<String>(); 

String stationName = "Hello" 

int index = stationNames. indexOf(stationName); 

if(index!=-1){ 
String value= stationIDs[index]; 
} 
+0

だろうか?答えは間違っていますか? –

関連する問題