[英]How to get index from Arraylist which contains string
下面是我的模型:
public class Products {
String date = "", item = "";
public Products () {
}
public Products (String date String item ) {
this.date = date
this.item = item ;
}
public String getdate() {
return date
}
public void setdate (String date) {
this.date = date
}
public String getitem () {
return item
}
public void setitem (String item) {
this.item = item
}
}
下面是定義 Arralist 的代碼:
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"
現在我想要包含 "pens" 的 ArraList 的位置。 因此,我在下面的代碼中編寫了以下代碼:
if (containsSubString(mArrayList, "pens")) {
int listIndex = getItemPos("pens");
}
private int getItemPos(String item) {
return mArrayList.indexOf(item);
}
當我運行這個時,它會給我-1
項目pens
索引。
如何獲取特定項目的索引?
做了TasksCharts
Object,包含pens
等於包含一個String對象pens
?
除非您覆蓋了 equals 方法,否則我會說“不”。
我建議您改用 Map ,否則您將不得不循環查找包含pens
的TasksCharts
對象
您可以運行 for 循環來完成工作。
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;
}
希望這有幫助!
我只是在同一個 ArrayList 中添加了產品,然后使用 for 循環來查找該產品位置。
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) + "");
}
}
這將使輸出為
D/Position: 0
你應該這樣做:
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("item" , "pen");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.