상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
엑셀 단축키로 번아웃을 방지하는 7가지 전략
"애드센스에서 월 100만원 벌기 위한 6단계"
"애드센스 수익을 가속화하는 9가지 방법"
기소유예와 화해의 중요성: 5가지 방법
왜 우리 집 에어컨 전기세는 이렇게 높을까? 7가지 이유!
전기세 낭비하지 마세요! 에어컨 절약법 10가지!
목 통증의 6가지 주요 원인과 대처법
목 통증, 스트레스가 주는 5가지 영향
목 통증의 4가지 검사 방법
희토류 자원과 정책: 5가지 대안을 제시합니다!
희토류 생산에서의 환경 문제: 5가지 접근!
마늘의 비밀을 파헤치다: X가지 놀라운 사실
Previous
Next
수정하기 - 코틀린의 MutableList와 List의 차이는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
코틀린(Kotlin)에서 `List`와 `MutableList`는 컬렉션을 다루는 두 가지 주요 인터페이스입니다. 이 두 인터페이스는 컬렉션의 불변성(immutable)과 <a href='https://sangseek.com/sangseeks/가변성/ko'>가변성</a>(mutable)을 결정짓는 중요한 요소입니다. 아래에서 이 두 인터페이스의 차이점과 각각의 특징을 자세히 살펴보겠습니다. 1. List `List`는 코틀린에서 제공하는 불변 컬렉션 인터페이스입니다. 즉, `List`의 인스턴스는 생성된 후 그 내용을 변경할 수 없습니다. `List`는 다음과 같은 특징을 가지고 있습니다: - 불변성 : `List`에 요소를 추가하거나 제거할 수 없습니다. 예를 들어, `List`를 생성한 후에는 그 리스트에 새로운 요소를 추가하거나 기존 요소를 삭제하는 메서드를 사용할 수 없습니다. - 안전성 : 불변 컬렉션은 멀티스레드 환경에서 안전하게 사용할 수 있습니다. 여러 스레드가 동시에 읽기 작업을 수행하더라도 데이터의 일관성이 유지됩니다. - 읽기 전용 : `List`는 읽기 전용 인터페이스로, 요소를 조회하는 메서드(예: `get`, `contains`, `size`)만 제공됩니다. - 생성 : `List`는 `listOf()` 함수를 사용하여 생성할 수 있습니다. 예를 들어: ```kotlin val immutableList: List<Int> = listOf(1, 2, 3) ``` 2. MutableList `MutableList`는 코틀린에서 제공하는 가변 컬렉션 인터페이스입니다. `MutableList`는 `List`의 서브인터페이스로, 요소를 추가, 제거, 수정할 수 있는 기능을 제공합니다. `MutableList`의 특징은 다음과 같습니다: - 가변성 : `MutableList`는 생성된 후에도 내용을 변경할 수 있습니다. 요소를 추가하거나 제거하는 메서드(예: `add`, `remove`, `clear`)를 사용할 수 있습니다. - 유연성 : 데이터의 변경이 필요한 경우 `MutableList`를 사용하면 유연하게 컬렉션을 조작할 수 있습니다. 예를 들어, 동적으로 데이터를 추가하거나 삭제해야 하는 경우 유용합니다. - 읽기 및 쓰기 : `MutableList`는 읽기 전용 메서드뿐만 아니라 쓰기 메서드도 제공합니다. 이를 통해 컬렉션의 내용을 직접 수정할 수 있습니다. - 생성 : `MutableList`는 `mutableListOf()` 함수를 사용하여 생성할 수 있습니다. 예를 들어: ```kotlin val mutableList: MutableList<Int> = mutableListOf(1, 2, 3) mutableList.add(4) // 요소 추가 mutableList.remove(2) // 요소 제거 ``` 3. 사용 <a href='https://sangseek.com/sangseeks/예시/ko'>예시</a> - List 사용 예시 : ```kotlin val readOnlyList: List<String> = listOf("Apple", "Banana", "Cherry") println(readOnlyList[0]) // "Apple" // readOnlyList.add("Date") // 오류 발생: UnsupportedOperationException ``` - MutableList 사용 예시 : ```kotlin val editableList: MutableList<String> = mutableListOf("Apple", "Banana", "Cherry") editableList.add("Date") // "Date" 추가 editableList.remove("Banana") // "Banana" 제거 println(editableList) // ["Apple", "Cherry", "Date"] ``` 4. 성능 및 메모리 - List : 불변 컬렉션은 메모리에서 더 효율적일 수 있으며, 불변성을 보장하기 때문에 가비지 컬렉션에 유리할 수 있습니다. 하지만, 새로운 리스트를 생성해야 할 경우 복사 비용이 발생할 수 있습니다. - MutableList : 가변 컬렉션은 요소를 추가하거나 제거할 때 더 많은 메모리를 사용할 수 있으며, 리스트의 크기가 동적으로 변할 수 있습니다. 그러나 이러한 유연성 덕분에 데이터 조작이 더 간편해집니다. 결론 코틀린에서 `List`와 `MutableList`는 각각의 용도에 맞게 사용해야 합니다. 데이터가 변경되지 않아야 하는 경우에는 `List`를 사용하고, 데이터의 추가, 삭제, 수정이 필요한 경우에는 `MutableList`를 사용하는 것이 좋습니다. 이러한 선택은 코드의 안전성과 성능, 유지보수성에 큰 영향을 미칠 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기