Flutter

2024. 09. 04 Flutter 컬렉션(자료구조)

정훈5 2024. 9. 4. 09:11

 

main2.dart

void main() {

  // Map은 키(Key)/값(Value)을 사용한다. 리스트는 대괄호[], Map은 중괄호{} 사용
  Map<String, int> myDict = {'홍길동' : 1, '포도' : 2, '사과' : 3};
  print(myDict.runtimeType);

  // 맵에 새로운 키/값 추가 하는 방법
  myDict['케이트'] = 4;

  print(myDict['케이트']);

  // 읽기
  print(myDict['홍길동']);
  print(myDict.keys); // 키
  print(myDict.values); // 값
  print(myDict.entries);  // 키 값 모두 확인가능

  // 수정
  myDict['홍길동'] = 100;

  // 삭제
  myDict.remove('홍길동');
  print(myDict.keys);

  // map에 특정 키/값이 있는지 확인 하는 방법
  print(myDict.containsKey('홍길동'));
  print(myDict.containsKey('케이트'));

  // Map을 다룰 때 다른 데이터 타입으로 변환해야 하는 경우 --> List
  // 리스트로 변환 하기
  var myDictKeys = myDict.keys;
  var myDicValue = myDict.values;
  print('데이터 타입 확인 : ${myDictKeys.runtimeType}');
//  List<String> myDictKeyList = myDict.keys.toList();
  List<String> myDictKeyList = myDictKeys.toList();
  print('데이터 타입 확인2 : ${myDictKeyList.runtimeType}');
  
  // 기존에 존재하는 map 다른 map 데이터를 일과 추가 해야 된다면
  Map<String, int> myDict2 = {'한국' : 1, '일본' : 2};
  myDict.addAll(myDict2); // myDict 에 myDict2의 데이터를 추가한다.
  print("----------------------------");
  print("----------------------------");
  print(myDict);
}

 

map.dart

// List -> [] Map -> {}, set -> {}

void main() {
  Set<String> data = {'a', 'b', 'c', 'a'};
  print(data);

  data.add('d'); // 추가

  data.remove('a'); // 제거

  print(data);

  // 전체 비우기
  data.clear();
  print(data);

}

 

 

List 자료구조 문제:

문제: 리스트에서 최댓값 찾기

주어진 리스트에서 최댓값을 찾는 함수를 작성하세요.

입력

  • 정수로 이루어진 리스트

출력

  • 리스트에서 최댓값

main4.dart

void main() {

  List<int> numbers = [3, 7, 2, 10, 5];
  int max = numbers[0];
  for(int i=1; i<numbers.length; i++) {
    if(numbers[i] > max) {
      max = numbers[i];
    }
  }

print('최대값 ${max}');
 // print('최대값 : ${10}');

}

 

 

Map 자료구조 문제:

문제: 학생 성적 평균 계산하기

주어진 학생들의 성적을 담은 맵에서 성적의 평균을 계산하세요.

입력

  • 학생 이름을 키로, 성적을 값으로 가지는 맵

출력

  • 학생들의 성적 평균
입력: [3, 7, 2, 10, 5]
출력: 10

 

 

문제: 중복 단어 제거하기

문자열로 이루어진 리스트에서 중복된 단어를 제거하세요.

입력

  • 문자열로 이루어진 리스트

출력

  • 중복이 제거된 리스트
입력: ['apple', 'banana', 'apple', 'grape', 'banana', 'orange']
출력: ['apple', 'banana', 'grape', 'orange']