2016-10-05 2 views
0

以下は私のモデルである文字列が含まれているは、ArrayListのからインデックスを取得する方法

private ArrayList<TasksCharts> mArrayList; 

と私はArrayListの中のデータを持っている:

position 0 -> date - "2016-10-02" , item = "pens" 
position 1 -> date - "2016-10-03" , item = "xyz" 
position 2 -> date - "2016-10-03" , item = "fts" 

今、私は "ペン"を含むArraListの位置を望んでいます。そのために、私はコードの下にerittenているので:

if (containsSubString(mArrayList, "pens")) { 
    int listIndex = getItemPos("pens"); 
    } 


private int getItemPos(String item) { 
     return mArrayList.indexOf(item); 
    } 

私はこれをラントとき、それは私の項目pensため-1指標を与えます。

特定の商品のインデックスを取得するにはどうすればよいですか?

+0

ここで、あなたは 'containsSubString'を定義しましたか? – SMA

答えて

3

pensを含むオブジェクトがpensを含むStringオブジェクトと等しいかどうかを確認します。

equalsメソッドをオーバーライドしていない限り、私は「いいえ」と答えます。

私はあなたの代わりに地図を使用するか、あなたはあなたが仕事を得るためのforループを実行することができますpens

3

を含むTasksChartsオブジェクトを探してをループしなければならないことをお勧めします。

private int getItempos(ArrayList<TasksCharts> mArrayList, String str) 
{ 
    for(int i=0;i<mArrayList.size();i++) 
    { 
    if(mArrayList.get(i).item.indexOf(str)!=-1) 
    { 
     return i; 
    } 
    } 
    return -1; 
} 

1

同じArrayListに商品を追加した後、for-loopを使用して商品の位置を特定しました。

ArrayList<Products> mArrayList = new ArrayList<>(); 

Products products1 = new Products("2016-10-05", "Pens"); 
Products products2 = new Products("2016-10-04", "Pencil"); 
Products products3 = new Products("2016-10-03", "Book"); 
Products products4 = new Products("2016-10-02", "Dairy"); 


mArrayList.add(products1); 
mArrayList.add(products2); 
mArrayList.add(products3); 
mArrayList.add(products4); 

for (Products products : mArrayList) { 
    if (products.getitem().equals("Pens")) { 
     Log.d("Position", mArrayList.indexOf(products) + ""); 
    } 

} 

これは、あなたがこのようSTHを行う必要があります

D/Position: 0 
2

として出力が得られます:

  private int getItemPos(String key , String item) { 
      int i = 0; 
      for (i=0; i<mArrayList.size(); i++) 
      { 
       if(mArrayList.get(i).get(key).equalsIgnoreCase(item)) 
       { 
        return i; 
       } 
      } 
      return -1; 
     } 

int型のx = getItemPos( "項目" と呼んで、 "ペン");

関連する問題