List는 왜 immutable인가?

69 views
Skip to first unread message

Outsider

unread,
Aug 28, 2011, 7:16:39 AM8/28/11
to 라 스칼라 코딩단
오늘 스터디에서 몇가지 스터디중에 해결되지 않는 것들이 있어서 메일링에 던집니다. 
스터디중에 시간없어서 그랬던 것이니 추가적인 논의와 테스트를 해보고 자료 찾아 보면서 의논해 보죠. ㅎㅎㅎ
주제별로 쓰레드 별도로 해서 올리겠습니다.

## List는 왜 immutable인가?

* Set의 경우 scala.collection밑에 scala.collection.immutable과 scala.collection.mutable에 Set이라는 trait가 있고  그 각각 아래 HashSet이라는 클래스가 있습니다. 이는 Map의 경우에도 동일합니다.

* 하지만 List의 경우 scala.collection.immutable.List 클래스만 존재합니다. 왜 mutable이 없을까요?

* 그리고 Set이나 Map처럼 List라는 트레이트가 존재하고 그 아래 LinkedList나 ArrayList 클래스가 존재하는 것이 더 자연스럽고 일관된 형태 같은데 왜 List만 있을까요? (물론 ListSet이나 ListMap이라는 클래스는 있습니다.)

* 반대로 Array는 왜 immutable이 존재하지 않을까요?

* 추가로 스터디때 찾은 링크 공유


--
/************************************************
Outsider
Front-end & Server-side Developer

Twitter : @Outsideris
*************************************************/

fupfin

unread,
Aug 28, 2011, 9:41:30 PM8/28/11
to scala...@googlegroups.com
스칼라의 List는 자바의 List에 비해서 좀 특별한 용도의 자료 구조 아닐까요?
이름은 비슷하지만 Set, Map과는 달리 자바의 List와는 별 관계가 없는 특별한 성질의 자료 구조 말이죠.

--
Google 그룹스 '라 스칼라 코딩단' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 scala...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 scala-korea...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/scala-korea?hl=ko에서 그룹을 방문하세요.

Kyuhyun Park

unread,
Aug 28, 2011, 11:48:51 PM8/28/11
to scala...@googlegroups.com
List 의 mutable 한 상대는 ListBuffer 입니다.
왜 List 라고 하지 않았을지에 대해서는... ^^

Set, Map 트레잇에 대응되는 List 류의 트레잇은 Seq 를 쓰시면 됩니다.

Array 는 java.lang.Array 로 변환됩니다.
Scala 에서 Array 는 자바의 그것이라고 보시면 됩니다.


2011/8/28 Outsider <outsi...@gmail.com>:

> G-Talk : outsi...@gmail.com

Reply all
Reply to author
Forward
0 new messages