코틀린에서 2개 이상의 배열을 하나로 합칠 때 다음 방법들을 사용할 수 있습니다.
- Plus Operator
- Spread Operator
- Java의 System.arraycopy()
예제를 통해 2개의 배열을 하나로 합치는 방법을 소개하겠습니다.
1. Plus 연산자로 배열 합치기
다음과 같이 +
연산자를 이용하면 두개 배열을 하나로 합친 배열을 생성할 수 있습니다.
fun main(args: Array<String>){
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val result = array1 + array2
println("result : ${result.contentToString()}")
}
Output:
result : [1, 2, 3, 4, 5, 6]
+
대신에 plus()
를 사용해도 결과는 동일합니다.
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val result = array1.plus(array2)
2. Spread Operator(전개 연산자)로 배열 합치기
코틀린에서 Spread Operator는 객체 앞에 *
로 표현합니다. 만약 배열 앞에 *
가 있으면, 배열이 갖고 있는 모든 요소들을 꺼내서 전달합니다.
아래 예제에서 intArrayOf()
의 인자 *array1
는 1, 2, 3
의 요소들을 전달한다는 의미입니다.
fun main(args: Array<String>){
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val result = intArrayOf(*array1, *array2)
println("result : ${result.contentToString()}")
}
Output:
result : [1, 2, 3, 4, 5, 6]
3. System.arraycopy()로 배열 합치기
System.arraycopy()
는 자바에 다음과 같이 정의되어있습니다. 인자로 전달된 index를 참고하여, src 배열에서 des배열로 복사를 합니다.
* @param src the source array.
* @param srcPos starting position in the source array.
* @param dest the destination array.
* @param destPos starting position in the destination data.
* @param length the number of array elements to be copied.
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
System.arraycopy()
를 이용하여 두개의 배열을 하나로 합치는 예제입니다.
fun main(args: Array<String>){
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5)
val result = IntArray(array1.size + array2.size)
System.arraycopy(array1, 0, result, 0, array1.size)
System.arraycopy(array2, 0, result, array1.size, array2.size)
println("result : ${result.contentToString()}")
}
Output:
result : [1, 2, 3, 4, 5]
References
Loading script...
Related Posts
- Kotlin - 배열에서 최소 값, 최대 값 찾기
- Kotlin - 2차원 배열 선언, 초기화 방법
- Kotlin - 배열 선언, 초기화 방법
- Kotlin - 리스트, 배열 길이 가져오기
- Kotlin - 리스트에서 최대, 최소 값 찾기
- Kotlin - for 반복문, 배열/리스트 순회
- Kotlin - Timer, 주기적으로 함수 실행
- Kotlin - sleep, 쓰레드 몇 초 지연
- Kotlin - Thread 생성 및 실행
- Kotlin에서 정규표현식 사용하기
- Kotlin - 문자열 길이 계산
- Kotlin - 문자열 비교 방법(equals, ==, compareTo)
- Kotlin - 2개의 배열 하나로 합치기
- Kotlin - 2개의 List 하나로 합치기
- Kotlin - 디렉토리의 모든 파일 리스트 출력
- Kotlin - 리스트 정렬 방법 (sort, sortBy, sortWith)
- Kotlin - 문자열 뒤집기 (Reverse String)
- Kotlin - 랜덤 숫자 생성 (Random, SecureRandom)
- Kotlin - Range, 숫자 범위 표현
- Kotlin - 음수를 양수로 변환, math.abs()
- Kotlin - List를 Set로 변환
- Kotlin - Set를 List로 변환
- Kotlin - 문자열에서 숫자(int)만 추출하는 방법
- Kotlin - Map을 List로 변환하는 방법
- Kotlin - File, Directory가 존재하는지 확인
- Kotlin - List를 Map으로 변환
- Kotlin - List의 중복 요소 제거
- Kotlin - List를 Array로 변환
- Kotlin - 엘비스 연산자 (Elvis Operation)
- Kotlin - Array를 List로 변환
- Kotlin - String을 Float으로 변환
- Kotlin - String을 Double으로 변환
- Kotlin - String을 Int로 변환
- Kotlin - String을 Long으로 변환
- Kotlin - String Null 또는 Empty 체크