본문 바로가기
728x90

Java/컬렉션 프레임워크5

Set 컬렉션 - TreeSet(개념) Set 컬렉션 - TreeSet (개념)TreeSet은 Set 인터페이스를 구현한 컬렉션 클래스이며, 이진 검색 트리(binary search tree)라는 자료구조의 형태로 데이터를 저장한다. 이진 검색 트리는 검색, 범위 검색, 정렬에 높은 성능을 제공하는 자료구조이며, TreeSet은 이진 검색 트리의 성능에서 향상된 '레드-블랙 트리(Red-Black tree)로 구현되어 있다. *참고* 이진 검색 트리의 성능을 향상시키기 위해 여러 가지 변형과 최적화된 자료 구조가 개발되었다. 향상된 자료 구조는 특정 작업에서 더 빠른 속도와 효율성을 제공하며, 시간 복잡도 문제를 완화해준다. 이처럼 향상된 이진 검색 트리 중에 TreeSet은 트리의 높이를 최소화하는 데 중점을 둔 구조인 '균형 이진 검색 트.. 2023. 9. 6.
List 컬렉션, LinkedList LinkedList에 대한 이해 배열은 가장 기본적인 형태의 자료구조로, 사용법이 쉽고 데이터의 접근 속도가 빠르다는 장점이 있지만 다음과 같은 단점이 있다.고정적 크기한번 크기를 지정하면 변경할 수가 없어, 새로운 배열을 생성해서 데이터를 복사해야 하는 번거로움이 있다. 빠른 접근속도를 위해서 충분한 크기의 배열을 만들어야 하므로 메모리가 낭비 될 수 있다.데이터 추가 및 삭제순차적으로 데이터를 추가하고 끝에서부터 데이터를 삭제하는 것은 빠르지만, 중간에 데이터를 추가하거나 삭제를 하는 경우, 이를 위해 요소 간 이동을 하는 시간 비용이 크다. 이러한 배열의 단점을 보완하기 위해서 연결 리스트가 고안되었다. 이 자료구조의 특징은 불연속적으로 존재하는 데이터를 서로 연결한 형태로 설계한 것이다.  연결 .. 2023. 9. 3.
List 컬렉션, ArrayList ArrayListArrayList는 컬렉션 클래스 중 가장 널리 사용되는 자료 구조 중 하나이다.ArrayList는 Collection 인터페이스의 하위 클래스인 List 인터페이스를 구현한 클래스로, 데이터의 저장 순서를 유지하고 중복을 허용하는 특징을 가지며, 이는 List 인터페이스의 설계 원칙을 따른 것이다.ArrayList는 내부적으로 데이터를 순차적으로 저장하기 위해서 Object 배열을 사용하며, 동적 크기 배열을 구현한 클래스이다. 이 동적 크기 조절 기능은 데이터 추가 및 제거를 훨씬 간단하게 만들어준다.ArrayList의 활용과 제공 메서드ArrayList list = new ArrayList(); // ArrayList 선언list.add("첫 번째 요소"); // Array.. 2023. 9. 2.
List, Set, Map 인터페이스 Collection 인터페이스 (List, Set의 조상)  Collection 인터페이스의 메서드메서드설명boolean add(E e)지정된 요소 e를 컬렉션에 추가.boolean addAll(Collection c)주어진 컬렉션 c의 모든 요소를 현재 컬렉션에 추가.void clear()컬렉션의 모든 요소를 제거.boolean contains(Object o)컬렉션이 특정 객체 o를 포함하고 있는지 여부를 반환.boolean containsAll(Collection c)컬렉션이 주어진 컬렉션 c의 모든 요소를 포함하고 있는지 여부를 반환.boolean isEmpty()컬렉션이 비어 있는지 확인.Iterator iterator()컬렉션을 순회할 수 있는 Iterator를 반환.boolean remove.. 2023. 8. 27.
컬렉션 프레임워크 컬렉션 프레임워크에 대한 이해 프레임워크란? 프로그램 설계 구조와 규칙을 제공하는 일종의 체계를 의미 즉, 개발자들에게 어떻게 코드를 구조화하고, 어떤 규칙을 따라야 하는지에 대한 지침을 제공하는 것. 프레임워크는 일반적인 문제를 해결하기 위한 코드나 구조를 제공하여, 개발자는 이미 만들어진 기능을 재사용 할 수 있다. 일반적으로 프레임워크는 확장 가능한 구조로 설계되어 있어, 필요에 따라 기능을 추가하거나 변경이 가능함. 컬렉션 프레임워크란? 데이터를 저장, 관리 및 처리하기 위한 다양한 "자료 구조"와 "메서드"를 제공하는 라이브러리의 집합. 즉, 자료 구조와 메서드를 제공함으로써 데이터를 보다 효율적으로 다루고 처리하는 데 도움을 주는 도구. 데이터를 다루는 데 필요한 여러 인터페이스와 그 인터페이.. 2023. 8. 27.
728x90