我实现了一个bean类,然后我创建了arraylist,如下面的例子。但是我无法获得特定名称的索引。我想知道如何在android中的数组列表中搜索员工姓名=“xxx”。
例如: - 假设我有一个bean员工{name,number}
并有一个arra列表 - > “array_list类型是员工”
需要在数组列表中搜索员工姓名=“xxx”的位置 我是如何实现它的? 感谢!!!
答案 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
我希望这就是你要找的东西。我很乐意帮助你