2014-05-20 2 views
0

배열/목록 또는 집합을 사용할 때의 주요 차이점은 무엇입니까? 하나를 다른 것 위에 사용하는 이유는 무엇입니까? 나는 문서를 살펴 봤는데 둘 다 많은 공통된 방법이있는 것으로 보인다.목록과 집합의 차이점

나는 목록이 불변이며 집합이 변경 불가능하고 변경 가능하다는 것을 알고 있습니다.

val Stuff = Array(1,2,3,4) 
val Apple = Set(1,2,3,4) 

Stuff.map(x => x*2) 
Apple.map(x => x*2) 

답변

6

Set은 순서가없고 중복 항목을 가질 수 없습니다.

scala> Set(1,2,3,1,2,3) == Set(3,2,1) 
res2: Boolean = true 

시퀀스 (Array, List, Vector 등)을 정렬 및 반복 된 요소를 가질 수있다.

val stuff = Array(1, 2, 3, 4) 
val apple = Set(1, 2, 3, 4) 

stuff.map(x => x % 3) // Array(1, 2, 0, 1) 
apple.map(x => x % 3) // Set(1, 2, 0) 
2

기능면에서 큰 차이점이 Set의 중복 요소를 포함 할 수 없다는 사실은 다음과 같습니다

은 예를 들어 (이, 덧붙여 말하자면, 컴파일되지 않습니다 ...)를 사용합니다.

요소가 이미있는 컬렉션에 추가해도 아무 효과가 없습니다.