Flutter/Dart - 리스트 요소 값 변경, 찾기

리스트 요소 접근 및 값 변경하는 방법을 소개합니다.

1. Index로 요소 찾기

list[index] 또는 list.elementAt(index)는 리스트에서 index에 해당하는 요소를 리턴합니다.

void main() {

    List<String> list = ['a', 'b', 'c', 'd', 'e'];

    print(list[0]);
    print(list[2]);
    print(list[4]);

    print(list.elementAt(0));
    print(list.elementAt(2));
    print(list.elementAt(4));
}

Output:

a
c
e
a
c
e

2. 리스트 요소 값 변경

list[index] = value 또는 list.elementAt(index) = value로 index에 해당하는 요소의 값을 변경할 수 있습니다.

void main() {

    List<String> list = ['a', 'b', 'c', 'd', 'e'];
    print(list);

    list[0] = '1';
    list[1] = '2';
    print(list);
}   

Output:

[a, b, c, d, e]
[1, 2, c, d, e]

3. 범위 밖의 Index 접근 및 Exception

리스트의 범위 밖의 Index를 사용하여 접근하면 아래와 같이 RangeError 에러가 발생합니다.

void main() {

    List<String> list = ['a', 'b', 'c', 'd', 'e'];
    list[5] = '1';
}

Output:

Unhandled exception:
RangeError (index): Invalid value: Not in inclusive range 0..4: 5
#0      List._setIndexed (dart:core-patch/growable_array.dart:273:49)
#1      List.[]= (dart:core-patch/growable_array.dart:268:5)

4. for문으로 리스트 모든 요소 순회

아래와 같이 for문을 이용하여 리스트의 모든 요소를 순회할 수 있습니다.

void main() {

    List<String> list = ['a', 'b', 'c', 'd', 'e'];

    for (var element in list) {
        print(element);
    }
}   

Output:

a
b
c
d
e

만약 for 루프에서 Index로 value에 접근할 때는, 아래와 같이 반복문을 구현하면 됩니다.

void main() {

    List<String> list = ['a', 'b', 'c', 'd', 'e'];

    for(var i = 0; i < list.length; i++) {
        print(list[i]);
    }   
}

또한, forEach(function)를 이용하여 아래와 같이 모든 요소를 순회할 수도 있습니다.

void main() {

    List<String> list = ['a', 'b', 'c', 'd', 'e'];

    list.forEach((element) {
       print(element);
    });
}
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha