如何在自定义数组列表中找到数组的索引...?
How to find the index of array in custom array list ...?
我想找到自定义数组列表的索引。
这是我的自定义数组列表:
private ArrayList<UserData> ListItems = new ArrayList<>();
UserData list = new UserData("list", "5", R.drawable.email_black, false);
UserData list1 = new UserData("list1", "3",R.drawable.text_msg, false);
UserData list2 = new UserData("list2", "2",R.drawable.phone_call, false);
ListItems.add(list);
ListItems.add(list1);
ListItems.add(list2);
我正在做如下但没有得到索引。
int m = ListItems.indexOf("list1");
UserData obj = ListItems.get(m);
String name = obj.getName();
我需要名称字符串中的 list1。
indexOf
方法基于参数和列表中的项目相等。由于它们不是(一个是 UserData
实例,另一个是 String
),您不能使用 indexOf
。相反,您必须自己实现此逻辑:
private UserData getUserDataByName(String name) {
for (UserData item : listItems) {
if (item.getName().equals(name)) {
return item;
}
}
// Not found, return null;
return null;
}
迭代你的数组列表以获得你需要的数据。
执行如下操作:
for (int i = 0; i < ListItems.size(); i++) {
String userListName = ListItems.get(i).getListName();
if(userListName.equals("list1")){
//Do something here
}else{
//Nthng to do
}
}
在这种情况下,你也可以使用HashMap。使用 HashMap<String,UserData>
,其中字符串为 "list"、"list1" 等
例如 -
map.put("list", list);
我想找到自定义数组列表的索引。 这是我的自定义数组列表:
private ArrayList<UserData> ListItems = new ArrayList<>();
UserData list = new UserData("list", "5", R.drawable.email_black, false);
UserData list1 = new UserData("list1", "3",R.drawable.text_msg, false);
UserData list2 = new UserData("list2", "2",R.drawable.phone_call, false);
ListItems.add(list);
ListItems.add(list1);
ListItems.add(list2);
我正在做如下但没有得到索引。
int m = ListItems.indexOf("list1");
UserData obj = ListItems.get(m);
String name = obj.getName();
我需要名称字符串中的 list1。
indexOf
方法基于参数和列表中的项目相等。由于它们不是(一个是 UserData
实例,另一个是 String
),您不能使用 indexOf
。相反,您必须自己实现此逻辑:
private UserData getUserDataByName(String name) {
for (UserData item : listItems) {
if (item.getName().equals(name)) {
return item;
}
}
// Not found, return null;
return null;
}
迭代你的数组列表以获得你需要的数据。 执行如下操作:
for (int i = 0; i < ListItems.size(); i++) {
String userListName = ListItems.get(i).getListName();
if(userListName.equals("list1")){
//Do something here
}else{
//Nthng to do
}
}
在这种情况下,你也可以使用HashMap。使用 HashMap<String,UserData>
,其中字符串为 "list"、"list1" 等
例如 -
map.put("list", list);