컬렉션 프레임워크11 컬렉션 프레임워크(컬렉션 API)_배열 다루기 [4/4] 컬렉션 프레임워크에서 배열을 다루다보니 개념정리가 잘 되어있지 않은 상태에서는 꽤 혼란스럴 수 있습니다. 클래스가 많은데 이리저리 연관되어 있는 경우가 많아서 그런 듯 합니다. 컬렉션 프레임워크의 전체 구성도는 아래와 같습니다. 실제로는 추상 클래스까지 중간에 있어서 조금 더 복잡한 구조이지만 간략히 필요한 것만 그렸습니다. [ 완전한 List 계열 컬렉션 만드는 법 ] 먼저 List 계열의 클래스들(ArraysList, Vector, LinkedList 등)은 List 인터페이스를 상속받았기 때문에 오버라이딩이 가능합니다. 즉, List 타입에 담아줄 수 있습니다. 굳이 List 계열의 컬렉션 타입을 List 타입에 담아주는 이유는 컬렉션을 여러 효율적인 알고리즘으로 처리 해주는 Collections .. ▸JAVA/기본 문법 2019. 12. 11. java.util.TreeSet 주요 메소드 [1/1] [ TreeSet Class ] 중복 없는 데이터 집합을 다룸 HashSet에 비해 상대적으로 데이터 처리 속도가 느리지만 다른 컬렉션에 비해 빠름 TreeMap Class와 유사한 작동 원리 컬렉션 프레임워크의 기본개념과, HashSet의 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4] [ 생성자 ] new TreeSet() 인자값으로 다른 컬렉션을 줄 수 있음 [ add() ] 값 추가, 중복값은 무시 객체의 경우 중복값을 피하기 위해 hashcode()와 equals() 메소드를 필히 오버라이딩 .. ▸JAVA/라이브러리(API) 2019. 12. 11. java.util.HashSet 주요 메소드 [1/1] [ HashSet Class ] 중복 없는 데이터 집합을 다룸 컬렉션 프레임워크 중 데이터 처리 속도가 가장 빠름 HashMap Class와 유사한 작동 원리 컬렉션 프레임워크의 기본개념과, HashSet의 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4] [ 생성자 ] new HashSet(); 인자값으로 용량과 사용률을 줄 수 있음 (HashMap과 동일) 용량 : 해시 테이블의 갯수를 의미 ( 카테고리의 갯수라고 보면 됨, 기본 16) 사용률 : 해시 테이블이 얼마만큼 다 차면 늘려줄 것인지 퍼센트.. ▸JAVA/라이브러리(API) 2019. 12. 11. 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4] List 계열은 이해하기 어렵지 않으니 따로 정리하지 않겠습니다. 컬렉션 프레임워크 및 각 계열의 특징은 이전 글을 참조 부탁드립니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/3] 2019/12/11 - [JAVA/라이브러리(API)] - java.util.HashSet 클래스의 주요 메소드 [1/1] 2019/12/11 - [JAVA/라이브러리(API)] - java.util.TreeSet 클래스의 주요 메소드 [1/1] [ HashSet ] HashMap과 유사하지만 별도의 키 값 없이 값 자체를 해싱하여 카테고리화 하여 저장 해싱 기법을 사용하여 컬렉션 프레임워크 중 가장 빠른 데이터 처리 속도를 가짐 HashMap과 동일한 원리라고 생각.. ▸JAVA/기본 문법 2019. 12. 11. java.util.TreeMap 주요 메소드 [1/1] [ TreeMap Class ] 컬렉션 프레임워크 Map 계열의 TreeMap 자료구조를 구현한 클래스 입력 순서에 상관 없이 자료를 트리 구조로 만들어 저장 및 검색 컬렉션 프레임워크 및 Map 계열의 기본 개념은 아래 글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_MAP 계열 [2/4] [ 생성자 ] 다른 맵계열과 마찬가지로 키(key)와 값(value)의 타입을 제네릭으로 지정 new TreeMap(); package study.first; import java.util.TreeMap; public class Main { public.. ▸JAVA/라이브러리(API) 2019. 12. 11. java.util.HashMap 주요 메소드 [1/1] [ HashMap Class ] 컬렉션 프레임워크 Map 계열의 HashMap 자료구조를 구현한 클래스 입력 순서에 상관없이 자료를 해싱 기법으로 분류하여 저장 및 검색 구버전 격인 HashTable Class도 사용법은 동일 컬렉션 프레임워크 및 Map 계열의 기본 개념은 아래 글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_MAP 계열 [2/4] [ 생성자 ] new HashMap() : 기본 용량 16, 사용률 0.75의 빈 HashMap 생성 argument로 (int Capacity, float loadFactor)를 직접 지정할 .. ▸JAVA/라이브러리(API) 2019. 12. 11. 컬렉션 프레임워크(컬렉션 API)_Map 계열 [2/4] List 계열은 이해하기 어렵지 않으니 따로 정리하지 않겠습니다. 컬렉션 프레임워크 및 각 계열의 특징은 이전 글을 참조 부탁드립니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/3] 2019/12/11 - [JAVA/라이브러리(API)] - java.util.HashMap 클래스의 주요 메소드 [1/1] 2019/12/11 - [JAVA/라이브러리(API)] - java.util.TreeMap 클래스의 주요 메소드 [1/1] [ HashMap / HashTable ] 해시 테이블(Hash Table)을 이용한 검색 구조 사용 HashMap은 HashTable의 신버전 클래스라고 볼 수 있음 차이점은 HashMap은 동기화 처리가 불가능하고 Has.. ▸JAVA/기본 문법 2019. 12. 10. java.util.LinkedList 주요 메소드 [1/1] [ LinkedList Class ] 연결리스트 자료구조를 구현한 클래스 힙 메모리에 한 공간씩 데이터를 저장해두고 앞 뒤 노드의 주소가 보관된 메모리 주소를 가지고 있음 단일 연결리스트 : 자신의 뒷 노드의 주소만 가지고 있음 이중 연결리스트 : 자신의 앞 뒤 노드의 주소를 모두 가지고 있음 C언어에서는 연결리스트를 구현하기 위해 malloc으로 메모리를 할당하고 헤더에 대한 처리를 해야 하는 등 여러가지로 매우 번거로웠지만, Java에서는 사용하기 쉽게 클래스화 되어 있습니다. C에서 하나하나 작성하던 것들이 자동화되어 있으니까 뭔가 바보가 되어가는 느낌입니다. 하지만 필요에 따라서는 해당 클래스 사용보다 직접 구조와 메소드를 만드는 것이 필요할 수 있기 때문에 C언어 스타일로 한번쯤은 직접 작성해보.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.util.Vector 주요 메소드 [1/1] [ Vector Class ] 컬렉션 프레임워크 중 List 계열의 한 종류 ArryaList Class와 동일한 인터페이스를 상속받은 클래스 ArrayList Class와 달리 동시 사용을 안전하게 처리할 수 있도록 설계된 클래스 (동기화 처리 가능) 일반적인 경우 ArrayList보다 무겁기 때문에 동기화 처리가 필요한 경우에 주로 사용 ArrayList와 Vector의 관계는 문자열 클래스인 StringBuilder와 StringBuffer 클래스의 관계와 비슷합니다. 동일 데이터를 여러 곳에서 동시에 처리하기 위한 장치들이 포함된 클래스가 Vector와 StringBuffer입니다. 여러 곳에서 동시에 하나의 자원을 사용할 대 문제없이 동작하도록 하는 기능을 "동기화 처리"라고 합니다. 하지만 미.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.util.ArrayList 주요 메소드 [1/1] [ ArrayList Class ] 컬렉션 프레임워크 중 List 계열의 한 종류 일반 배열을 조금 더 쉽게 사용할 수 있도록 함 일반 배열과 원리나 구조는 다르지 않습니다. 다만, 배열의 사이즈를 조정하거나 중간에 값을 삽입하거나 하는 등의 번거로운 작업이 클래스 내의 메소드로 미리 작성되어 있어 편리하게 사용할 수 있습니다. 컬렉션 프레임워크의 정확한 개념은 아래 링크를 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] [ 생성자 ] new ArrayList() : 기본 크기가 10인 배열 생성 new ArrayList(기본크기) : 기본 크기를 지정 (배열이 다 차면 기본크기만큼 사이즈가 증가함) new ArrayList().. ▸JAVA/라이브러리(API) 2019. 12. 10. 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] [ 컬렉션 프레임워크 ] 여러 가지 자료구조 알고리즘을 미리 구현하여 데이터를 효율적으로 처리할 수 있도록 함 C언어의 연결리스트와 같은 개념 등을 하나의 클래스로 구현하여 쉽게 사용 가능 컬레션 프레임워크는 List, Set, Map 계열로 나뉘어집니다. [ List 계열 ] 배열 또는 연결리스트 자료구조와 동일한 구조 (순서를 가지는 자료 구조) 기존 배열과 연결리스트를 편하게 사용할 수 있도록 클래스가 구성되어 있음 ArrayList : 일반 배열을 다루는 클래스, 동기화 처리가 불가능 Vector : ArrayList와 동일하나 동기화 처리가 가능하기 때문에 속도는 상대적으로 느림 LinkedList : 연결리스트 자료구조 구현 따라서 데이터 검색과 기존 데이터 변경이 잦은 구조일 때는 Array.. ▸JAVA/기본 문법 2019. 12. 10. 이전 1 다음 💲 추천 글 반응형