如何在android中的数组列表中获取特定值的索引

时间:2015-12-09 07:09:31

标签: android

我实现了一个bean类,然后我创建了arraylist,如下面的例子。但是我无法获得特定名称的索引。我想知道如何在android中的数组列表中搜索员工姓名=“xxx”。

例如: - 假设我有一个bean员工{name,number}

并有一个arra列表 - > “array_list类型是员工”

需要在数组列表中搜索员工姓名=“xxx”的位置       我是如何实现它的?            感谢!!!

3 个答案:

答案 0 :(得分:5)

您可以使用IndexOf()

的方法java.util.ArrayList

实现类似于

ArrayList<String> arrlist = new ArrayList<String>(5);
// use add() method to add values in the list
arrlist.add("G");
arrlist.add("E");
arrlist.add("F");
arrlist.add("M");


  // retrieving the index of element "E"

int retval=arrlist.IndexOf("E");

因此,retval是所需对象的索引

答案 1 :(得分:1)

您可以在arrayList上启动for循环。 对于每个索引,从列表中获取employee对象,并从该对象获取雇员名称。将此名称与xxx进行比较,如果匹配,则将i的值存储在某个变量中并中断循环。

答案 2 :(得分:1)

扎恩的回答是对的。但是,在ArrayList中查找元素的复杂性是 O(n)

但是,看到说明,我认为你要找的是Map

Map的作用是存储与特定密钥对应的信息。例如,我可以将员工ID号作为,将该员工的相应名称作为。您可以详细了解我撰写的教程here或通用的here

我必须提到JAVA中的Map接口,因此要实现它,您可以使用HashMap (使用散列) )它提供摊销的 O(1)查找时间,这是你想要拍摄的。

以下是将Employee ID号存储为,将employeesoee名称存储为的实现。我还必须提到Map中的必须始终是唯一的。您将在本教程中学习所有这些内容。我将假设您将Employee名称和ID号存储在class&#39; employee&#39;的对象数组中。这是:

    employee[] data=new employee[100];
    /*code in this to store in this whatever data you have to
     */
    Map<Integer, String> lookupEmpName=new HashMap<Integer, String>();
    for(int i=0;i<data.length;i++)
        lookupEmpName.put(data[i].getEmpNumber,data[i].getName); //Store the key as the number and the name as the value
    String name=lookupEmpName.get(1234); //name will store the corresponding name of the employee if it exists or stores null


我希望这就是你要找的东西。我很乐意帮助你