전체 글(89)
-
Map - 컬렉션 프레임워크 - Map 소개2
package collection.Map;import java.util.HashMap;import java.util.Map;public class MapMain2 { public static void main(String[] args) { Map studentMap = new HashMap(); //학생 성적 데이터 추가 studentMap.put("studentA",90); System.out.println(studentMap); studentMap.put("studentA",100); System.out.println(studentMap); boolean containsKey = studentMap.conta..
2024.06.17 -
Map - 컬렉션 프레임워크 - Map 소개 1
Map은 키-값의 쌍을 저장하는 자료 구조이다.키는 맵 내에서 유일해야 한다. 그리고 키를 통해 값을 빠르게 검색할 수 있다.키는 중복될 수 없지만, 값은 중복될 수 있다.Map은 순서를 유지하지 않는다.자바는 HashMap, TreeMap, LinkedHashMap등 다양한 Map 구현체를 제공한다. 이들은 Map 인터페이스의 메서드를 구현하며, 각기 다른 특성과 성능 특징을 가지고 있다. package collection.Map;import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class MapMain1 { public static void main(Strin..
2024.06.17 -
Set - 자바가 제공하는 Set4 - 최적화
자바의 HashSet은 우리가 직접 구현한 내용과 거의 같지만 다음과 같은 최적화를 추가로 진행한다. 최적화해시 기반 자료 구조를 사용하는 경우 통계적으로 입력한 데이터의 수가 배열의 크기를 75%정도 넘어가면 해시 인덱스가 자주 충돌한다. 따라서 75%가 넘어가면 성능이 떨어지기 시작한다.해시 충돌로 같은 해시 인덱스에 들어간 데이터를 검색하려면 모두 탐색해야 한다. 따라서 성능이O(n)으로 좋지 않다.하지만 데이터가 동적으로 계속 추가되기 때문에 적절한 배열의 크기를 정하는 것은 어렵다.자바의 HashSet은 데이터의 양이 배열 크기의 75%를 넘어가면 배열의 크기를 2배로 늘리고 2배 늘어난 크기를 기준으로 모든 요소에 해시 인덱스를 다시 적용한다.해시 인덱스를 다시 적용하는 시간이 걸리지만, 결과..
2024.06.14 -
Set - 자바가 제공하는 Set3 - 예제
HashSet, LinkedHashSet, TreeSet에서 학습한 내용을 코드로 확인해보자.package collection.set.javaset;import java.util.*;public class JavaSetMain { public static void main(String[] args) { HashSet hashSet = new HashSet(); LinkedHashSet linkedHashSet = new LinkedHashSet(); TreeSet treeSet = new TreeSet(); run(new HashSet()); run(new LinkedHashSet()); run(new TreeSet()); ..
2024.06.14 -
Set - 자바가 제공하는 Set2 - TreeSet
3. TreeSet구현 : TreeSet은 이진 탐색 트리를 개선한 레드 - 블랙 트리를 내부에서 사용한다.순서 : 요소들은 정렬된 순서로 저장된다. 순서의 기준은 비교자(Comparator)로 변경할 수 있다. 비교자는 뒤에서 다룬다.시간 복잡도 : 주요 연산들은 O(log n)의 시간 복잡도를 가진다. 따라서 HashSet보다는 느리다.용도 : 데이터들을 정렬된 순서로 유지하면서 집합의 특성을 유지해야 할 때 사용한다. 예를 들어, 범위 검색이나 정렬된 데이터가 필요한 경우에 유용하다. 참고로 입력된 순서가 아니라 데이터의 값의 순서이다. 예를 들어 3,1,2 를 순서대로 입력해도 1,2,3 순서로 출력된다. 트리 구조TreeSet을 이해하려면 트리 구조를 먼저 알아야 한다.트리는 부모 노드와 자식 ..
2024.06.14 -
Set - 자바가 제공하는 Set1 - HashSet, LinkedHashSet
셋은 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조이다. 컬렉션 프레임워크 - SetCollection 인터페이스collection 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스 중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션, 즉 데이터 그룹을 다루기 위한 메서드를 정의한다. Collection 인터페이스는 List, Set, Queue와 같은 다양한 하위 인터페이스와 함께 사용되며, 이를 통해 데이터를 리스트, 세트, 큐 등의 형태로 관리할 수 있다. Set 인터페이스자바의 Set 인터페이스는 java.utl 패키지의 컬렉션 프레임워크에 속하는 인터페이스 중 하나이다. Set 인터페이스는 중복을 허용하지 않는 유일한 요소의 집할을 나타낸다. 즉, 어떤 요소도..
2024.06.14