2015-12-09 4 views
0

Я реализую класс bean, а затем создаю arraylist, как показано ниже. Но я не мог получить индекс в определенном имени. Я хочу знать, как искать, где имя сотрудника = "Xxx" в списке массивов в android.Как получить индекс определенного значения в списке массивов в android

например: - скажем у меня есть сотрудник боб {имя, номер}

и есть список Arra -> «array_list тип работника»

нужно искать, где имя сотрудника = "Xxx" в списке массивов Как я его реализую? спасибо !!!

+0

Hi Kushan .. почему что-то в списке в android? Я имею в виду пользовательскую версию Java для Java для программирования, поэтому вопрос должен быть как-то в списке в java?Надеюсь, тебе ответят. Его просто метод indexOf() списка. –

+0

На самом деле я хочу без всякой петли. Так что, чтобы получить доступ к arrylist usnig key value.then, если у него есть значения соответствия – Kushan

+0

Возможно, вы захотите посмотреть мой ответ. Я думаю, что это то, что вы, возможно, ищете – bholagabbar

ответ

1

Вы можете запустить цикл for на arrayList. Для каждого индекса получить объект работника из списка и от этого объекта получить имя сотрудника. Сравните это имя с xxx, и если оно совпадает, сохраните это значение i в некоторой переменной и разбейте цикл.

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 является индекс нужного объекта

+0

Честно говоря, глядя на то, что он хочет, я думаю, что он искал «карту», ​​но не знал, что она существует – bholagabbar

1

ответ Zahan является правильным. Однако сложность поиска элемента в ArrayList равна O (n).

Однако, видя описание, я думаю, что вы ищете Map.

Что такое Map, хранит информацию, соответствующую определенному ключу. Например, у меня могут быть идентификационные номера сотрудников как ключ и соответствующее имя этого сотрудника как значение. Вы можете узнать больше о учебнике, которое я написал here, или общей версии here.

я должен отметить, что Map в JAVA является интерфейсом, поэтому для его реализации, вы можете использовать HashMapкласса (использует хеширование), который предлагает АМОРТИЗИРОВАННУЮ O (1) время поиск, который является то, что вы хотите для стрельбы.

Вот реализация для хранения числа сотрудников идентификаторов как ключевых и имена employoee в качестве значения. Я должен также упомянуть, что ключи в Map всегда должны быть уникальными. Вы узнаете все это в учебнике. Я предполагаю, что у вас есть имена сотрудников и номера идентификаторов, хранящиеся в массиве объектов класса «employee». Здесь идет:

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 


Я надеюсь, что это то, что вы искали. Я был бы gald, чтобы помочь вам

Смежные вопросы