-
[Dart][Set] AOS 개발자가 공부하는 Dart 언어 기초 10Flutter 2023. 7. 22. 20:11
[이전 글]
2023.07.22 - [Flutter] - [Dart][Map] AOS 개발자가 공부하는 Dart 언어 기초 9
[Dart][Map] AOS 개발자가 공부하는 Dart 언어 기초 9
[이전 글] 2023.07.12 - [Flutter] - [Dart][List] AOS 개발자가 공부하는 Dart 언어 기초 8 [Dart][List] AOS 개발자가 공부하는 Dart 언어 기초 8 [이전 글] 2023.07.11 - [Flutter] - [Dart][반복문] AOS 개발자가 공부하는 Dart
tokkoutai.tistory.com
- Set 이란?
- List는 중복 데이터를 허용하지만 set은 중복 데이터는 자동으로 제외한다.
철수와 동수는 동창이다. 10년 만에 동창회를 열기로 하였다. 철수가 연락하는 친구들과 동수가 연락하는 친구들 중 겹치는 친구들이 있다. 중복되는 친구들을 제외 한 목록을 작성해 보자.
철수 친구들 = [민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연]
동수 친구들 = [마리, 순자, 박군, 제인, 지숙, 말숙, 기연, 수연]//set 선언 void main() { var cheolsFriends = ['민우', '마리', '동우', '제인', '수연', '광수', '종석', '미연']; print('철수 친구들 : $cheolsFriends'); var dongsuFriends = ['마리', '순자', '박군', '제인', '지숙', '말숙', '기연', '수연']; print('동수 친구들 : $dongsuFriends'); Set set = new Set(); set.addAll(cheolsFriends); // 철수 친구들 전체 목록을 add 한다. set.addAll(dongsuFriends); // 동수 친구들 전체 목록을 add 한다. print('동창회 목록 : $set'); } /** 결과 - 철수 친구들 : [민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연] 동수 친구들 : [마리, 순자, 박군, 제인, 지숙, 말숙, 기연, 수연] 동창회 목록 : {민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연, 순자, 박군, 지숙, 말숙, 기연} */
- List.toSet() 메서드
- List는 기본적으로 중복을 허용하지만 toSet() 메서드를 통해 중복을 제외하고 사용할 수 있다.
//list.toSet() void main() { var friends = ['민우', '마리', '동우', '제인', '수연', '광수', '종석', '미연', '마리', '순자', '박군', '제인', '지숙', '말숙', '기연', '수연']; print('친구들 : $friends'); print('중복 제외 목록 : ${friends.toSet()}'); } /** 결과 - 친구들 : [민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연, 마리, 순자, 박군, 제인, 지숙, 말숙, 기연, 수연] 중복 제외 목록 : {민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연, 순자, 박군, 지숙, 말숙, 기연}v */
- add 메서드
- 데이터를 추가할 때 사용 한다.
- 중복은 자동으로 제외된다.
//set > add void main() { //List는 대괄호로 데이터를 바로 추가 하지만, Set은 중괄호를 사용하여 데이터를 바로 추가 할 수 있다. Set friends = {'민우', '마리', '동우', '제인', '수연', '광수', '종석', '미연', '마리', '순자', '박군', '제인', '지숙', '말숙', '기연', '수연'}; print('친구들 : $friends'); friends.add('동우'); friends.add('진우'); friends.add('철우'); print('추가 후 친구들 : $friends'); } /** 결과 - 친구들 : {민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연, 순자, 박군, 지숙, 말숙, 기연} 추가 후 친구들 : {민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연, 순자, 박군, 지숙, 말숙, 기연, 진우, 철우} */
- 자주 사용하는 메서드
- Set 메서드 중 자주 사용 하는 메서드를 알아보자.
//set > 자주 사용하는 메서드 void main() { //List는 대괄호로 데이터를 바로 추가 하지만, Set은 중괄호를 사용하여 데이터를 바로 추가 할 수 있다. Set friends = {'민우', '마리', '동우', '제인', '수연', '광수', '종석', '미연', '마리', '순자', '박군', '제인', '지숙', '말숙', '기연', '수연'}; print('친구들 : $friends'); print('참석 자 수 : ${friends.length}'); print('제인이 있는지 여부 : ${friends.contains('제인')}'); print('목록 첫번째 친구 : ${friends.first}'); print('목록 마지막 친구 : ${friends.last}'); print('목록에 데이터가 있는지 여부 : ${friends.isEmpty}'); print('runtimeType : ${friends.runtimeType}'); var where = friends.where((b) => b.contains('우')); print('이름에 우가 포함된 목록 : ${where}'); } /** 결과 - 친구들 : {민우, 마리, 동우, 제인, 수연, 광수, 종석, 미연, 순자, 박군, 지숙, 말숙, 기연} 참석 자 수 : 13 제인이 있는지 여부 : true 목록 첫번째 친구 : 민우 목록 마지막 친구 : 기연 목록에 데이터가 있는지 여부 : false runtimeType : _LinkedHashSet<dynamic> 이름에 우가 포함된 목록 : (민우, 동우) */
'Flutter' 카테고리의 다른 글
[Dart][Map] AOS 개발자가 공부하는 Dart 언어 기초 9 (0) 2023.07.22 [Dart][List] AOS 개발자가 공부하는 Dart 언어 기초 8 (0) 2023.07.12 [Dart][반복문<while문>] AOS 개발자가 공부하는 Dart 언어 기초 7 (0) 2023.07.11 [Dart][반복문<for문>] AOS 개발자가 공부하는 Dart 언어 기초 6 (0) 2023.07.10 [Dart][산술 연산자] AOS 개발자가 공부하는 Dart 언어 기초 5 (0) 2023.07.07 - Set 이란?