1. List 선언
-
var
name_list = ['a', 'b', 'c']; 와 같이 변수 타입을 컴파일러에 의해서 자동으로 설정할 수 있다.
- List<String> name_list = ['a', 'b', 'c']; 와 같이 Java와 같이 리스트의 Type 을 지정할 수 있다.
- List<String> name_list = <String>[]; 으로 선언만 하고 값은 나중에 입력 할 수 있다.
2. List 사용법
- list num = [1, 2, 3]; num.add(3); 다음과 같이 add 메서드로 리스트에 데이터 값을 추가할 수 있다.
- num.addAll( [4, 5, 6] ) 과 같이 addAll 로 리스트 값을 추가할 수 있다.
- num[2]; 와 같이 Java의 배열과 유사하게 특정 인덱스의 값을 가져오거나 수정할 수 있다.
Ex> list num = [1, 2, 3]; num[1]; -> 2 num[1] = 4; (num 리스트의 1번 인덱스의 값을 4로 수정)
- num.remove(2) , num.removeAt(0) 와 같이 remove 로 특정한 데이터 값이나 removeAt 으로 특정위치의 값(인덱스)을 제거할 수 있다.
- num.contains(3); 처럼 contains 로 리스트 내부에 해당값이 있는지 검색할 수 있다.
- list num = [1, 2, 3]; num.length; 와 같이 length 로 리스트의 길이(데이터 갯수)를 확인 할 수 있다.
- list 는 입력된 순서대로 저장되고 데이터의 위치가 그대로 유지된다.
void main(List<String> arguments) {
var name_list = ['jhon', 'jack', 'beck'];
// list 의 타입을 지정할 수 있다.
List<String> name_list2 = ['jhon', 'jack', 'beck'];
// 빈문자열 입력 후 나중에 값을 넣을 수 있다.
List<String> name_list3 = <String>[];
// 값 추가
name_list3.add('jhon');
name_list3.add('jack');
name_list3.addAll(['a', 'b', 'c']);
// 값 제거
name_list3.remove('jack');
name_list3.removeAt(1);
// 값 검색
name_list3.contains('c');
// 데이터 갯수 확인
name_list3.length;
}
3. Set 선언
- var name_set = {'Jhon', 'Back'} 처럼 {} 로 타입 지정하지 않고 Set을 선언할 수 있다.
- var name_set = <String>{}; 으로 초기화 없이 타입을 지정하여 선언할 수 있다.
- set 을 Java 와 유사하게 타입 지정 선언을 할 수도 있다. Set<String> name_set = {};
4. Set 사용법
- Set<String> name_set = {'Jhon', 'Back'}; name_set.add('Aka'); List 와 동일하게 add로 데이터를 추가할 수 있다.
- Set<String> name_set = {'Jhon', 'Back'}; name_set.length; 로 셋의 길이(데이터 갯수)를 확인 할 수 있다.
- name_set.addAll( { 'Roll', 'Tj' } ) 처럼 name_set.addAll 로 셋 데이터를 추가할 수 있다.
- name_set.remove( 'Jhon' ) 처럼 name_set.remove로 데이터를 삭제 할 수 있다.
- name_set.contains( 'Jhon' ) 처럼 name_set.contains 로 데이터를 검색 할 수 있다.
- list 는 입력된 순서가 유지되지 않고(특정 인덱스로 접근할 수 없음) 중복을 허용하지 않는다.
- 위치가 특정한 규칙에 의해서 정해져 있기 때문에 검색(접근) 속도가 List 보다 빠르다.
void main(List<String> arguments) {
var name_set = {'jhon', 'jack', 'beck'};
// set 의 타입을 지정할 수 있다.
Set<String> name_set2 = {'jhon', 'jack', 'beck'};
// 빈문자열 입력 후 나중에 값을 넣을 수 있다.
Set<String> name_set3 = <String>{};
// 값 추가
name_set3.add('jhon');
name_set3.add('jack');
name_set3.addAll(['a', 'b', 'c']);
// 값 제거
name_set3.remove('jack');
// 값 검색
name_set3.contains('c');
// 데이터 갯수 확인
name_set3.length;
}
5. Map 선언
- var student = { 'Jhon' : 13, 'Jack' : 15}; 와 같이 Key 와 value 로 값을 선언 및 초기화 할 수 잇다.
- var student = Map<String,int>(); 처럼 Java 와 유사한 방식으로 타입을 지정한 선언을 할 수 있다.
- type으로 들어오는 값이 서로 다를 때는 dynamic 이라고 타입을 선언하면 된다.
Ex> Map<String,dynamic> = { 'name' : 'Jhon', 'age' : 34 }
6. Map 사용법
- student['Jhon'] 으로 해당 Key 의 데이터 값을 꺼낼 수 있다.
- student.containsKey('Jhon') 처럼 해당 Key를 가지고 있는 지 검색할 수 있다.
- student.keys; 로 해당 Map 이 가지고 있는 모든 Key 값을 가져올 수 있다.
- student.length; 로 Map 의 데이터 갯수를 알 수 있다.
- student.values; 로 Map 이 가지고 있는 모든 Value 값을 가져올 수 있다.
- Key 값은 중복되면 안된다.
void main(List<String> arguments) {
var student = {'Jhon': 13, 'Jack': 15};
var student2 = Map<String, int>();
Map<String, dynamic> student3 = {'이름': 'Jhone', '나이': 13, '닉네임': 'jjj'};
// key 'jhon' 의 값을 불러옴 13
student['Jhon'];
// key 'jhon' 을 가지고 있는지 확인 true
student.containsKey('Jhon');
//가지고 잇는 key 목록 ['Jhon', 'Jack']
student.keys;
//가지고 잇는 value 목록 [13, 15]
student.values;
// 데이터의 갯수
student.length;
}
'Flutter > Dart' 카테고리의 다른 글
Dart 클래스(class) (0) | 2023.04.19 |
---|---|
Dart 함수(function, main function) (2) | 2023.04.19 |
Dart 반복문 ( for, while, do while, continue, break ) (0) | 2023.04.19 |
Dart 조건문 ( if, if - else, if - else if - else, switch ) (0) | 2023.04.19 |
Dart 자료형 및 변수 (0) | 2023.04.19 |