以下是我的模特:
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"
现在我想要ArraList的位置,其中包含&#34;笔&#34; 。因此,我已经在下面编写了代码:
if (containsSubString(mArrayList, "pens")) {
int listIndex = getItemPos("pens");
}
private int getItemPos(String item) {
return mArrayList.indexOf(item);
}
当我这样做时,它会为项目-1
提供pens
索引。
我如何获得特定项目的索引?
答案 0 :(得分:3)
包含TasksCharts
的{{1}}对象是否等于包含pens
的字符串对象?
除非你覆盖了equals方法,否则我会说“不”。
我建议你改用Map,否则你将不得不循环寻找一个包含pens
的{{1}}对象
答案 1 :(得分:2)
您可以运行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;
}
希望这有帮助!
答案 2 :(得分: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(&#34; item&#34;,&#34; pen&#34;);
答案 3 :(得分:1)
我只是在同一个ArrayList中添加了产品,然后使用for循环来查找该产品的位置。
TextUtils.isDigitsOnly("gifg");
这将输出为
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) + "");
}
}