본문 바로가기

Algorithm

Array

1.  MutableList

- 요소를 추가, 제거, 변경 작업 수행 가능
- 배열 기반 or 링크드 리스트 등 다양한 방식 구현 가능

 

val mutableList: MutableList<Int> = mutableListOf(1, 2, 3, 4, 5)
mutableList.add(6) // 요소 추가
mutableList[2] = 10 //요소 수정
mutableList.removeAt(0) // 요소 제거

 


- 특정한 위치에 값 추가

 

val values = mutableListOf(4, 6, 8)
val item = 2
 
values.add(0, item)         //index, element
 
println(values)             // [2, 4, 6, 8]



 2. ArrayList 

- 요소를 추가나 제거할 때 자동으로 크기 조정
- MustableList 중 ArrayList가 포함

 

val arrayList: ArrayList<Int> = arrayListOf(1, 2, 3, 4, 5)
arrayList.add(6) // 요소 추가
arrayList[2] = 10 //요소 수정
arrayList.removeAt(0) // 요소 제거


3. IntArray 

- int로 이루어진 배열, 크기 변경 X
- 요소 추가, 제거 변경 불가능

 


- 배열의 크기 변경할 필요 없고 요소를 읽기만 하는 간단한 작업에서 사용

 

val intArray: IntArray = intArrayOf(1, 2, 3, 4, 5)
val element = intArray[0]   // 요소 읽기
intArray.add(6)             // 컴파일 오류, 크기 변경 불가능

println(intArray.contentToString()) // 해시코드 -> 문자열 변환 출력

 


- List[int] -> intarray 변환

 

var intList:List<Int> = listOf(1, 2, 3, 4)
var intArray:IntArray = intList.toIntArray()

println(intArray.contentToString())

 

 

확장 함수 plus()

 

- 요소 추가 X
- 새로운 배열 생성

 

var intArray = intArrayOf()

// intArray에 5를 추가한 새로운 IntArray 생성 (원래의 intArray 변경 X)
intArray = intArray.plus(5)

 

기타 : 유용한 메소드

 

reversedArray() : 배열 뒤집기

var numList:IntArray = intArrayOf(1, 2, 5, 5, 7)
println(numList.reversedArray().contentToString())

 

 

distinct() : 중복 원소 제거

val list = listOf<Int>(1, 2, 3, 4, 5, 3, 2, 1, 5, 6)
val cList = mutableListOf<Char>('A', 'a', 'B', 'b', 'C', 'a', 'A', 'c')

println(list.distinct())    // 출력 : [1, 2, 3, 4, 5, 6]
println(cList.distinct())    // 출력 : [A, a, B, b, C, c]

 

'Algorithm' 카테고리의 다른 글

진수 변환  (0) 2023.08.07
Collection 함수  (0) 2023.08.03