728x90 Programming/Java23 [Java] Hashtable vs Map Hashtable과 Map은 모두 키와 값의 쌍으로 데이터를 저장하는 자료 구조입니다. 하지만 두 자료 구조는 몇 가지 차이점이 있습니다. Hashtable과 Map의 가장 큰 차이점은 동기화(synchronization) 여부입니다. Hashtable은 스레드 안전(thread-safe)한 자료 구조로, 동시에 여러 스레드에서 사용해도 안전합니다. 따라서, 멀티스레드 환경에서 안전하게 데이터를 처리해야 하는 경우에는 Hashtable을 사용하는 것이 좋습니다. 반면에 Map은 스레드 안전하지 않습니다. 멀티스레드 환경에서 안전하게 데이터를 처리하기 위해서는 ConcurrentHashMap 등의 스레드 안전한 자료 구조를 사용해야 합니다. 또한, Hashtable은 초기 용량(capacity)과 로드 팩.. 2023. 2. 26. [Java] Hashtable Java의 Hashtable은 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료 구조입니다. Hashtable은 해시 테이블(hash table)을 사용하여 구현되어 있으며, 키를 해시 함수를 이용하여 해시코드로 변환한 다음, 해당 해시코드에 해당하는 버킷(bucket)에 값을 저장합니다. 이를 통해 빠른 검색 및 삽입이 가능합니다. Hashtable은 다음과 같은 특징을 가지고 있습니다. 키와 값은 모두 Object 타입으로 저장됩니다. Hashtable의 초기 용량(capacity)은 11이며, 런타임에 자동으로 늘어납니다. Hashtable은 스레드 안전(thread-safe)하게 동작합니다. 따라서, 동시에 여러 스레드에서 사용해도 문제가 발생하지 않습니다. Hashtable은 순서를.. 2023. 2. 26. [Java] 다형성 다형성(polymorphism)은 객체 지향 프로그래밍(OOP)에서 중요한 개념 중 하나입니다. 다형성이란 하나의 코드가 여러 가지 방식으로 동작할 수 있는 것을 의미합니다. 자바에서 다형성은 크게 두 가지 방법으로 구현됩니다. 첫째는 상속(inheritance)을 이용한 다형성이고, 둘째는 인터페이스(interface)를 이용한 다형성입니다. 상속을 이용한 다형성은 부모 클래스에 정의된 메서드를 자식 클래스에서 오버라이딩(overriding)하여 다양한 구현을 제공하는 것을 말합니다. 자식 클래스는 부모 클래스의 타입을 상속받기 때문에 부모 클래스 타입으로 자식 클래스의 객체를 참조할 수 있습니다. public class Animal { public void makeSound() { System.out.. 2023. 2. 24. [Java] 팩토리얼 계산하는 코드 만들기 5!은 5 * 4 * 3 * 2 * 1로 계산됩니다. 이를 자바 코드로 구현하면 다음과 같습니다. public class Main { public static void main(String[] args) { int num = 5; int result = 1; for (int i = num; i > 0; i--) { result *= i; } System.out.println(num + "! = " + result); } } 위 코드에서는 변수 num에 계산할 팩토리얼의 수를 지정하고, result 변수에 초기값 1을 할당합니다. 그리고 for 반복문을 사용하여 num부터 1까지의 숫자를 차례대로 곱해가며 result 변수에 저장합니다. 마지막으로 결과를 출력합니다. 2023. 2. 23. [Java] 버전 크기를 비교하는 코드 만들기 (Semantic version) 1.5.1, 1.5.7과 같이 Semantic version으로 구성된 버전의 크기 비교하는 자바 코드 입니다. public class VersionComparisonExample { public static void main(String[] args) { String v1 = "1.5.1"; String v2 = "1.5.7"; String[] arr1 = v1.split("\\."); String[] arr2 = v2.split("\\."); int i = 0; while (i < arr1.length || i < arr2.length) { if (i < arr1.length && i < arr2.length) { if (Integer.parseInt(arr1[i]) < Integer.parseInt.. 2023. 2. 23. map과 list 중 검색 속도가 빠른 것은? map은 검색 속도가 빠른 데이터 구조입니다. map은 키-값 쌍으로 데이터를 저장하기 때문에, 키를 이용하여 값을 검색할 수 있습니다. 이 때, map은 해시 테이블을 이용해 데이터를 저장하기 때문에, 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있습니다. 반면, list는 순차적으로 데이터를 저장하며, 인덱스를 이용해 값을 검색할 수 있습니다. 이 때, list는 평균적으로 O(n)의 시간 복잡도로 데이터를 검색합니다. 하지만, 이러한 성능적인 차이는 데이터 크기, 검색 방법, 데이터 형식 등 다양한 요인에 따라 영향을 받기 때문에 일반적인 상황에서도 매번 map이 list보다 빠르다는 것은 아닙니다. 때에 따라서는 list가 map보다 빠를 수도 있습니다. 2023. 2. 23. 이전 1 2 3 4 다음 728x90