Array Int와 IntArray
Array와 IntArray의 차이
전자는 타입 제네릭을 공부하여 한번 지나가듯 본 적 있었고
후자는 ‘누구세요? 코틀린에 이런 분이 계시나요?’ 싶었다.
각각의 선언법
kotlin 기준 Array
var arr=Array<Int>(크기,{값})
여기에서 값과 자료형은 생략 가능하다.
값 생략 시 자료형에 따른 기본값
⬛Int형의 기본값은 0이다
⬛String의 기본값은 ““이다
⬛double의 기본값은 0.0이다
⬛Boolean의 기본값은 false이다
kotlin 기준 IntArray
var arr=IntArray(크기)
여기에서는 크기만을 할당하고 초기화 할 기본값을 따로 세팅은 불가하다
자바에서는 어떻게 변환될까?
Array의 변환
우선 저번에 정리한 타입 제너릭에 대해 좀 더 파고들어 보아야할 것 같다
내가 지금까지 이해한 것을 토대로 짐작해보자면,
Array
1번 가정: 자바의 타입 제너릭과 코틀린 타입 제너릭의 차이
이 둘이 다르다는 것은 저번 게시물에서 이미 알아보았다.
간단하게 필요한 부분만 요약하자면,
자바는 런타임 시점에서 타입을 지정하며 코틀린은 컴파일 시점에서 지정한다는 것이다
즉 코틀린은 컴파일 시점에서 타입을 지정하기 때문에
매 컴파일 시점마다 새로운 배열을 생성하는 것이나 마찬가지이며
그 덕에 자유롭게 배열 안에 값을 넣을 수 있다는 결과를 도출할 수 있다
2번 가정: 자바와 코틀린 언어 특성 차이
코틀린 인 액션에 의하면, 코틀린은 타입의 추론을 지원하기 때문에
타입의 안정성이 자연스럽게 올라간다
즉 array
2번 가정을 모두 작성하고 나니 1번과 유사하게 흘러가는 맥락이어서 이 둘을 따로 보기보다는 같이 보는 것이 좋을 것 같다.
결론: 원칙적으로는 Java에 없는 문법이다
그러나, 코틀린은 자바와의 호환성을 중시하기 때문에 방법이 없는 것은 아니다
Integer[] myArray = 파일명kt.get배열이름();
이렇게 사용하면 array
하지만 이렇게 변형 할 시 추가로
` toTypedArray(), toArray(), asList()`와 같은 함수를 사용해야하며,
Integer[]를 사용하여 런타임에 타입 검사를 진행하여야만 한다
IntArray의 변환
int[] 배열 이름 = new int[배열사이즈];
로 나타내면 된다.
초기화 방법
0으로 초기화가 필요할 때에는 바로 배열을 사용해도 되지만
특별한 값으로 초기화가 필요한 경우 몇가지 방법이 있다.
(1)배열을 선언하고 초기화 하기
int[] intArray = {1, 2, 3};
(2)Arrays.fill()
Arrays.fill(배열 이름, 초기화 원하는 값)
을 통한 초기화도 가능하다.
또한 따로 서술하지는 않았으나, for문을 통한 초기화 역시 가능하다
공부 시 참고한 링크
💜자바의 제너릭
자바 제너릭 이해하기
💜초기화 방법
Arrays.fill사용법 및 예시
다음번에 공부 할 거리
🟪Int와 Integer의 차이(자바에서)
🟪new 생성자의 정확한 역할
댓글남기기