📌 1. 리스트(List)
✅ Java에서 리스트 사용
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list);
}
}
🔹 Java의 특징
• ArrayList<>를 명시적으로 선언해야 함.
• add() 메서드를 사용해야 함.
✅ Kotlin에서 리스트 사용
fun main() {
val list = listOf("Apple", "Banana", "Cherry")
println(list)
}
🔹 Kotlin의 특징
• listOf() 함수를 사용하여 불변 리스트(Immutable List)를 쉽게 생성 가능.
• mutableListOf()를 사용하면 변경 가능한 리스트 생성 가능.
val mutableList = mutableListOf("Apple", "Banana")
mutableList.add("Cherry") // 가능
📌 2. 맵(Map)
✅ Java에서 맵 사용
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Cherry", 3);
System.out.println(map.get("Apple"));
}
}
🔹 Java의 특징
• HashMap<>을 명시적으로 선언해야 함.
• put() 메서드를 사용해야 함.
✅ Kotlin에서 맵 사용
fun main() {
val map = mapOf("Apple" to 1, "Banana" to 2, "Cherry" to 3)
println(map["Apple"]) // 1
}
🔹 Kotlin의 특징
• mapOf()를 사용하여 불변 맵(Immutable Map) 생성 가능.
• to 연산자를 사용하여 키-값을 쉽게 추가 가능.
• 변경이 필요한 경우 mutableMapOf()를 사용.
val mutableMap = mutableMapOf("Apple" to 1)
mutableMap["Banana"] = 2 // 변경 가능
📌 3. 람다 표현식(Lambda Expression)
✅ Java에서 람다 사용 (Java 8 이상)
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
list.forEach(s -> System.out.println(s));
}
}
🔹 Java의 특징
• 람다식은 -> 기호를 사용하여 표현.
• forEach()와 같은 고차 함수 사용 가능.
✅ Kotlin에서 람다 사용
fun main() {
val list = listOf("Apple", "Banana", "Cherry")
list.forEach { println(it) }
}
🔹 Kotlin의 특징
• {} 블록을 사용하여 더 간결하게 표현 가능.
• it 키워드를 사용하여 단일 매개변수 생략 가능.
• 매개변수가 여러 개라면 명시적으로 선언 가능.
list.forEach { item -> println(item) }
📌 4. 기본 매개변수(Default Arguments)
✅ Java에서 기본 매개변수 구현
public class Main {
public static void main(String[] args) {
greet("John");
greet("John", "Hello");
}
static void greet(String name) {
greet(name, "Hi"); // 오버로딩 사용
}
static void greet(String name, String greeting) {
System.out.println(greeting + ", " + name);
}
}
🔹 Java에서는 기본값을 설정할 수 없으므로 메서드 오버로딩을 사용해야 함.
✅ Kotlin에서 기본 매개변수 사용
fun greet(name: String, greeting: String = "Hi") {
println("$greeting, $name")
}
fun main() {
greet("John") // Hi, John
greet("John", "Hello") // Hello, John
}
🔹 Kotlin의 특징
• 기본 매개변수를 사용할 수 있어 메서드 오버로딩이 불필요.
• 명시적으로 기본값을 지정할 수 있음.
📌 5. 객체 싱글톤(Singleton)
✅ Java에서 싱글톤 구현
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
🔹 Java의 특징
• 싱글톤 패턴을 직접 구현해야 함.
• getInstance()를 호출해야 객체를 가져올 수 있음.
✅ Kotlin에서 싱글톤 사용
object Singleton {
fun show() = println("Singleton Instance")
}
fun main() {
Singleton.show() // Singleton Instance
}
🔹 Kotlin의 특징
• object 키워드를 사용하여 간단하게 싱글톤을 생성 가능.
• getInstance() 없이 바로 사용 가능.
📌 6. 문자열 템플릿(String Template)
✅ Java에서 문자열 연결
public class Main {
public static void main(String[] args) {
String name = "John";
String greeting = "Hello, " + name + "!";
System.out.println(greeting);
}
}
🔹 Java의 특징
• 문자열을 연결할 때 + 연산자를 사용해야 함.
✅ Kotlin에서 문자열 템플릿 사용
fun main() {
val name = "John"
val greeting = "Hello, $name!"
println(greeting)
}
🔹 Kotlin의 특징
• $변수명을 사용하여 간결한 문자열 삽입 가능.
• 복잡한 표현식은 ${}로 감쌀 수 있음.
val age = 30
println("Age next year: ${age + 1}") // Age next year: 31
📌 7. 예외 처리(Exception Handling)
✅ Java에서 예외 처리
public class Main {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero");
}
}
static int divide(int a, int b) {
return a / b;
}
}
🔹 Java의 특징
• try-catch 블록을 사용하여 예외 처리.
✅ Kotlin에서 예외 처리
fun main() {
try {
val result = divide(10, 0)
println(result)
} catch (e: ArithmeticException) {
println("Cannot divide by zero")
}
}
fun divide(a: Int, b: Int): Int {
return a / b
}
🔹 Kotlin의 특징
• Java와 동일한 try-catch 구조를 사용.
• throw를 사용하여 예외 발생 가능.
fun validateAge(age: Int) {
if (age < 18) throw IllegalArgumentException("Age must be 18 or older")
}
🚀 결론
기능 | Java | Kotlin |
리스트 | new ArrayList<>() | listOf() / mutableListOf() |
맵 | new HashMap<>() | mapOf() / mutableMapOf() |
람다 | s -> s.length() | { it.length } |
기본 매개변수 | 오버로딩 필요 | fun greet(name: String = "Hi") |
싱글톤 | getInstance() 필요 | object Singleton |
문자열 | + 연산 사용 | $변수명 |
예외 처리 | try-catch | 동일 |
출처 : ChatGPT
'BE > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 문법 6 (open, 상속, 인터페이스) (0) | 2025.02.20 |
---|---|
[Kotlin] 코틀린 문법 5 (lateinit, lazy, companion object) (0) | 2025.02.19 |
[Kotlin] 코틀린 문법 4 (apply, let, also, run, with) (0) | 2025.02.18 |
[Kotlin] 코틀린 문법 3 (filter, forEach, ?:, map, is, as) (0) | 2025.02.17 |
[Kotlin] 코틀린 문법 (0) | 2025.02.14 |