-1
그래서 나는 코드의이 작은 조각을 얻었다.반환 값
import java.util.*;
public static void main(String[] args) {
ArrayList<String> a = new ArrayList<String>();
a.add(0, "zero");
a.add(1, "one");
if (a.indexOf("two") != 1) {
a.add(2, "two");
}
}
와 if
문이있다.
그래서 API 문서에서 indexOf
은 지정된 요소 (이 경우 "2")의 색인을 반환하지만이 요소가 목록에 없으면 -1
을 반환합니다. != 1
은이 반환 값 -1
이 4
과 다르다는 것을 의미하므로 문이 true이고 if 블록의 명령어가 실행됩니다 (목록에 인덱스 2
의 문자열 추가).
맞았습니까?
고마워요.
올바른지, 더 좋은 코드는 먼저'contains' 메소드를 사용합니다 :'if (a.contains ("two") && a.indexOf ("two")! = 1)' –
요소가 특정 위치에 있거나, 그것이 전혀 존재한다면? – shmosel
@RoelStrolenberg 더 나은 코드는 O (n) 대신 O (2n)을 선호합니까? 잘 알고 있습니다. 그리고'contains'는'indexOf (o)> = 0;'으로 구현된다는 것을 알고 계십니까? 그래서 당신은'indexOf'를 두 번 호출하고 있습니다 ... – Tom