【问题标题】:How to find the index of array in custom array list ...?如何在自定义数组列表中找到数组的索引...?
【发布时间】:2016-07-21 06:19:16
【问题描述】:

我想找到自定义数组列表的索引。 这是我的自定义数组列表:

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。

【问题讨论】:

  • 您必须在listItems.indexOf() 中传递userData 对象而不是字符串才能获取索引。
  • 你能解释一下如何......?
  • 那是自定义对象而不是自定义列表。您必须通过 ListItems.indexOf(list1),这里 list1 是一个 UserData 对象(在您的情况下为自定义对象)。
  • 正如 Glenn 所提到的,传递 userData 对象是正确的方法,如果有可能你可以根据索引获取项目。
  • @samir 阅读 Saritha 的评论

标签: java arraylist indexof


【解决方案1】:

迭代您的数组列表以获取所需的数据。 执行以下操作:

    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
        }
    }

【讨论】:

    【解决方案2】:

    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;
    }
    

    【讨论】:

    • 退货商品的存放位置;用户数据项 = getUserDataByName("list1");字符串名称 = item.getName();是不是……?
    • @samir 是的,应该可以。如果你想格外小心,你应该在打电话给item.getName()之前检查item != null
    【解决方案3】:

    在这种情况下,您也可以使用 HashMap。使用HashMap&lt;String,UserData&gt;,其中字符串为“list”、“list1”等。

    前-

    map.put("list", list);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 2017-05-07
      • 2014-01-02
      相关资源
      最近更新 更多