happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.

리스트의 특정값의 인덱스 찾기

리스트의 특정값의 인덱스를 찾는 방법에 대해 알아볼게요.

indexOf()를 사용합니다.

리스트의 특정값이 인덱스 찾기

indexOf()에 인덱스를 찾을 값을 입력합니다.

리스트.indexOf(값);

해당값이 있으면 인덱스를 반환하고 없으면 -1를 반환합니다.

그럼 예제를 통해 알아볼게요.

void main() {
    List<String> nation = ['korea','uk','japan'];
    print(nation.indexOf('japan'));
}
list indexOf

japan이 리스트에 있기 때문에 해당 인덱스를 보여줍니다.

해당 값이 없으면 -1를 반환합니다.

void main() {
    List<String> nation = ['korea','uk','japan'];
    print(nation.indexOf('china'));
}
list indexOf

앞에서 특정값이 있는지 contains()를 통해 확인했는데요.

존재유무도 확인해야하며 인덱스도 알아야 한다면 indexOf()를 사용하는것도 좋겠지요?

void main() {
    List<String> nation = ['korea','uk','japan'];

    String val = 'china';
    int idx = nation.indexOf(val);
    if (idx >= 0){
        print('$val exists, idx is $idx');
    }else{
        print('no $val');
    }

    val = 'korea';
    idx = nation.indexOf(val);
    if (idx >= 0){
        print('$val exists, idx is $idx');
    }else{
        print('no $val');
    }
}
list indexOf

하지만 리스트에 같은 값이 있을 수 있습니다.

리스트는 중복값을 허용하기 때문입니다.

이 경우에 인덱스는 가장 먼저 등장하는 값의 인덱스가 나타납니다.

가장 먼저 등장한다는 왼쪽에서 가장 먼저 있는 값을 의미합니다.

다음과 같이 korea가 2개라면 먼저 등장한 왼쪽에 있는 korea의 인덱스가 출력됩니다.

void main() {
    List<String> nation = ['uk','korea','japan','korea'];
    print(nation.indexOf('korea'));
}
list indexOf

먼저 등장하는 korea의 인덱스인 1이 출력됩니다.

역순으로 가장 늦게 등장하는 인덱스를 찾아야 한다면 lastIndexOf()를 사용합니다.

void main() {
    List<String> nation = ['uk','korea','japan','korea'];
    print(nation.lastIndexOf('korea'));
}
list indexOf

가장 나중에 등장하는 korea의 인덱스인 3이 나타납니다.


봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준