2013-05-08 2 views

ответ

1

Если ваш список хранит числа, вы получаете -1, потому что вы передаете String в метод indexOf.

List<Integer> list = new ArrayList<Integer>(); 
list.add(1); 
list.add(2); 

list.indexOf("1");//returns -1 
list.indexOf(1);//returns 0 

При выполнении сравнения внутренне в indexOf он проверяет равенство, которое принимает во внимание тип.

1

«2» - это строка, в то время как ваш список содержит целые числа. Попробуйте List.indexOf(new Integer(2));

0

Попробуйте использовать List.indexOf(2); вместо List.indexOf("2");

Так, ваш вопрос говорит, что у вас есть числовые данные в вашем List объекта, вы должны передать аргумент как число вместо String. Если вы не храните свои данные в форме String, вы получите -1.

1

-1 означает, что искомое значение не содержится в вашем списке.

- это содержимое списка действительно строк?

0

Вы ищете 2 как строку. Попробуйте List.indexOf(2)

0

Как вы проходите 2 как «2». он рассматривается как строка. Если вы хотите получать данные из списка, вы проходите как List.indexOf (new Integer (2)); или List.indexOf (новое целое число (любое число));

0

Как говорит Катя, вы, вероятно, ищете неправильный тип (String) в своем списке (я предполагаю, что это список Integer).

смотрите пример ниже:

List<Integer> list = new ArrayList<Integer>(); 

list.add(1); 
list.add(2); 

System.out.println(list.indexOf("1")); 
System.out.println(list.indexOf(1)); 

Выход:

-1 
0 
Смежные вопросы