아래의 글은 마틴 오더스키,렉스 스푼,빌 베너스 공저 / 오현석,이동욱,반영록 공역, 『Programming in Scala 3/e』,에이콘출판사(2017), CH01의 내용을 기반으로 작성하였습니다.

 

1. 시퀀스

가장 중요한 시퀀스는 List 클래스, 변경 불가능한 linked list, 원소 추가나 삭제가 용이, 임위의 위치에 접근할때 순차 일기

 

배열

배열은 원소의 시퀀스를 저장, 

임의의 원소에 효율적으로 접근

 

리스트 버퍼

리스트 끝에 추가할려면 reverse 하고 앞에 추가하고, 다시 reverse

reverse 연산을 피할 수 있는 방법은 ListBuffer

리스트 버퍼는 변경가능한 객체

+= 원소 추가

+=: 원소 앞에 추가

ListBuffer눈 잠재적인 stock overflow 방어

 

배열버퍼

ArrayBuffer

 

문자열

StringOps

 

2. Set(집합)과 Map(맵)

Set과 Map 을 만들면 디폴트로 변경 불가능한 객체 생성

Map, Predef.Map, scala.collection.immutable.Map 동일

Set의 특징은 특정 객체는 최대 하나만 들어가도록 보장

같은지는 == 로 결정

Map의 특징은 집합의 각 원소 사이에 연관 관계 설정

맵 생성은 key, value 필요

Set : HashSet 으로 제공

Map : HashMap

SortedSet

SortedMap

구현은 TreeSet, TreeMap

원소나 키는 red-black tree 사용

 

 

3. 변경가능, 변경 불가능

가능한 변경 불가능

++= 는 집합에 원소 컬랙션을 추가한다.

 

4. 컬렉션 초기화

TreeSet 만들어서 ++ 연산자 통해서 추가

배열이나 리스트로 바꾸기

toList

toArray

 

5. 튜플

정해진 개수의 원소를 한데 묶는다

원소 타입이 서로 다를 수 있다

+ Recent posts