: 내가 처음 2의 인덱스를 갖고 싶어list.indexOf (수치) -1을 반환
1
1
1
2
2
2
을, 내가 List.indexOf 사용 ("2") 하지만 -1을 반환합니다
이유가 무엇입니까?
: 내가 처음 2의 인덱스를 갖고 싶어list.indexOf (수치) -1을 반환
1
1
1
2
2
2
을, 내가 List.indexOf 사용 ("2") 하지만 -1을 반환합니다
이유가 무엇입니까?
목록에 숫자가 저장되어있는 경우 indexOf 메서드에 문자열을 전달하므로 -1이 반환됩니다. indexOf
내부적 비교를 할 때
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.indexOf("1");//returns -1
list.indexOf(1);//returns 0
그것은 고려 입력 얻어 지 어떤지를 체크한다.
"2"는 문자열이고 목록에는 정수가 포함되어 있습니다. List.indexOf(new Integer(2));
이
시도 귀하의 질문은 당신이 당신의 List
객체의 수치 데이터가 있다고 대신 이후 List.indexOf("2");
의 List.indexOf(2);
를 사용하여, 당신은 대신 String
의 숫자로 인수를 전달해야합니다보십시오. String
의 형식으로 데이터를 저장하지 않으면 결과로 -1
가 표시됩니다.
-1은 검색된 값이 목록에 없다는 것을 의미합니다.
정말 목록 문자열의 내용입니까?
문자열을 2로 검색하고 있습니다. 시도해보십시오 List.indexOf(2)
2를 "2"로 전달하십시오. 그것은 String으로 간주합니다. 목록에서 데이터를 가져 오려면 List.indexOf (new Integer (2))와 같이 전달하십시오. 또는 List.indexOf (새 정수 (임의의 숫자));
Katja가 말한 것처럼 목록에서 잘못된 유형 (문자열)을 찾고있을 것입니다 (나는 정수의 목록이라고 가정합니다).
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
아래의 예를 참조하십시오