
Set
Set<타입> [변수 이름] = {요소};
수학에서의 집합에 해당. 중복되지 않은 값들이 묶인 형태.
Set<int> numbers = {1, 2, 3, 4, 5};
Set<int> numbers = {}; // 공집합도 가능.또는 var names = <String>{}; 도 가능var numbers = {}; 는 안 된다. => Map 타입이 되어버린다.
각각의 요소는 모두 동일한 타입이어야 한다. 다른 타입인 요소가 들어오면 오류 발생.
요소들의 순서가 보장되지 않는다. ==
index개념이 없다.중복된 값이 있으면 하나를 제외하고는 모두 무시한다.
Set<String> actors = {'박정민', '구교환', '주지훈', '박정민', '이동욱', '박정민'};
print(actors); // {박정민, 구교환, 주지훈, 이동욱}.length
요소의 개수 구하기
Set<String> actors = {'박정민', '구교환', '주지훈', '박정민', '이동욱', '박정민'};
print(actors.length); // 4.isEmpty / .isNotEmpty
Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바'};
print(seobuway.isEmpty); // false
print(seobuway.isNotEmpty); // true.add() / .addAll()
void main () {
Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바'};
seobuway.add("그린혼");
print(seobuway.join(', '));
} // 즈므로스터리, 비앤타, 비노에올리바, 그린혼void main () {
Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼'};
Set<String> newbies = {'잔물결', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센'};
seobuway.addAll(newbies);
print(seobuway.length); // 14
print(seobuway.join(', ')); // 즈므로스터리, 비앤타, 비노에올리바, 그린혼, 잔물결, 명경지수, 지구리워크, 브레드브레드바나나, 윤슬서림, 바담장, 수수하, 딥마켓, 몬테가든, 스미야끼센
}.remove() / .removeAll()
void main () {
Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센', '잔물결'};
seobuway.remove("잔물결");
print(seobuway.length);
print(seobuway.join(', '));
}
/*
13
즈므로스터리, 비앤타, 비노에올리바, 그린혼, 명경지수, 지구리워크, 브레드브레드바나나, 윤슬서림, 바담장, 수수하, 딥마켓, 몬테가든, 스미야끼센
*/void main () {
Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센', '잔물결'};
print(seobuway.length);
seobuway.removeAll({'비앤타','지구리워크','바담장','잔물결'});
print(seobuway.length);
print(seobuway.join(', '));
}
/*
14
10
즈므로스터리, 비노에올리바, 그린혼, 명경지수, 브레드브레드바나나, 윤슬서림, 수수하, 딥마켓, 몬테가든, 스미야끼센
*/.contains() / .containsAll()
void main () {
Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센', '잔물결'};
print(seobuway.contains("몬테가든")); // true
print(seobuway.contains("명주상회")); // false
Set<String> myungjudan = {"명주상회", "보리울림", "봉봉방앗간"};
print(seobuway.containsAll(myungjudan)); // false
seobuway.addAll(myungjudan);
print(seobuway.length); // 17
print(seobuway.containsAll(myungjudan)); // true
}
Map
Map<key type : value type> name = { key, value };
Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};key들과value들은 각각 타입이 같아야 한다.key와value는 서로 다른 타입으로 구성할 수 있다.key는 중복될 수 없지만value는 중복될 수 있다.
.length
요소의 개수 구하기
Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
print(price.length); // 3.isEmpty / .isNotEmpty
Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
print(price.isEmpty); // false
print(price.isNotEmpty); // truename[key]를 통해 검색 가능
Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
print(price["빅웨이브"]); // 8000
print(price["듀체스"]); // 14000name[key] = value; 를 통해 키의 값 수정
Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
price["듀체스"] = 16000;
print(price["듀체스"]); // 16000name[key] = value;를 통해 새로운 키와 값의 쌍 추가
Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
beer["카스제로"] = 5000;
print(beer); // {생맥주: 5000, 빅웨이브: 8000, 듀체스: 14000, 카스제로: 5000}.remove()
Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
beer.remove("생맥주");
print(beer); // {빅웨이브: 8000, 듀체스: 14000}
print(beer["생맥주"]); // null.containsKey()
void main () {
Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
print(beer.containsKey("생맥주")); // true
print(beer.containsKey("칭따오")); // false
}.values
Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000, "카스제로" : 5000};
print(beer.values); // (5000, 8000, 14000, 5000)
print(beer.values.join(', ')); // 5000, 8000, 14000, 5000Share article