배열을 학습하고 for 문으로 넘어왔다.
코틀린과 비슷하면서 다른 점이 많다.
배열 선언
java
int[] students;
students = new int[2]; // 이후에 값 할당
int[] students;
students = new int[]{90, 80, 70, 60, 50};
kotlin
val numbers = arrayOf(1, 2, 3, 4, 5)
val numbers = IntArray(5) // 이후에 값 할당
val numbers = IntArray(5) {it + 1}
자바의 new 라는 키워드가 눈에 띈다.
자바에서 'new' 키워드는 새로운 객체나 배열을 생성하는 데 사용된다.
메모리에 새로운 객체 또는 배열을 할당하고 그 메모리 주소를 반환하여 사용할 수 있게 한다.
'new' 를 사용하지 않고 선언만 하면 그 변수는 초기화되지 않은 상태로 남아있어 실제로 접근할 수 없다.
int[] myArray;
이렇게 되면 myArray 라는 것을 선언만 한 것이고 초기화되지 않아 아무런 메모리 공간을 할당받지 못했기 때문에 접근하여 오류가 발생한다.
'new' 를 사용하지 않고 바로 값을 할당하는 것이 가능하다.
int[] numbers = {1, 2, 3, 4, 5};
이 경우 자바 컴파일러가 자동으로 'new Int[]' 를 사용하여 배열을 생성하고 초기값을 할당한다.
for 문 사용
java
for (int number : numbers) {
System.out.print(number + " ");
}
kotlin
for (number in numbers) {
println(number)
}
자바는 향상된 for 문으로 배열의 각 요소를 순차적으로 가져올 수 있다.
코틀린의 for 문도 유사하게 작동하는데 여기서
인덱스와 함께 요소에 접근가능하다.
val numbers = arrayOf(1, 2, 3, 4, 5)
for ((index, value) in numbers.withIndex()) {
println("Index: $index, Value: $value")
}
withIndex() 메소드로 인덱스를 같이 가져온다.
또 다른 점은 코틀린에서는 for 문에서 step 이나 downTo 등을 사용하여 범위를 순회할 때 더 유연하게 만들어준다.
자바에서는 직접 구현해주어야 한다.
kotlin
for (i in 1..10 step 2) {
println(i)
}
java
for (int i = 1; i <= 10; i += 2) {
System.out.println(i);
}
보통 자바에서 코틀린으로 넘어오니까 이게 이렇게 간소화된다고? 하는 느낌이던데
반대로 하니까 코틀린이 이렇게 간단했구나~ 하고 느끼는 중입니다........
'Language > JAVA' 카테고리의 다른 글
자바와 코틀린 데이터 타입 시스템 비교 (0) | 2024.04.23 |
---|