728x90
반응형

JAVA/Data Structure 4

[JAVA] ConcurrentHashMap

흔히 사용되는 HashMap 클래스는 synchronized 키워드가 존재하지 않는다. 이는 성능은 좋지만, 멀티스레드 환경에서 thread-safe 하지 않음을 의미하며 멀티스레드 환경에서 사용하기는 부적합하다. thread-safe(스레드 안전) : 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻함. synchronized : 여러개의 스레드가 한개의 자원을 사용하고자 할 때, 현재 데이터를 사용하고 있는 해당 스레드를 제외하고 나머지 스레드들은 데이터에 접근 할 수 없도록 막는 것을 뜻함. 이러한 문제로 인해 멀티스레드 환경에서 사용할 수 있도록 나온 클래스가 바로 ConcurrentHashMap 이..

JAVA/Data Structure 2022.10.23

[JAVA] 배열(Array)과 ArrayList

동일한 자료형(Data Type)의 데이터를 연속된 공간에 저장하기 위한 자료구조를 배열(Array)이라고 한다. 1. 배열은 왜 사용할까? - 같은 종류의 데이터를 효율적으로 관리 가능하다. - 같은 종류의 데이터를 순차적으로 저장한다. 장점 - 빠른 접근 가능 : 첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근) 단점 - 데이터 추가/ 삭제의 어려움 : 미리 최대 길이를 지정해야한다. -> 길이를 모르는 경우에는 배열이 아닌 Collection 객체의 ArrayList를 사용하여 해결한다. 1_2. 변수 선언 시 사용되는 자료형 Primitive(원시) 자료형 / Wrapper 클래스 Primitive type Wrapper Class byte Byte short Short in..

JAVA/Data Structure 2022.10.13

[JAVA] Queue 자료구조 add와 offer 차이

데이터 추가 시 큐가 꽉 찼을때 add는 예외를 반환하고, offer는 false를 반환한다. 예외 값 리턴 추가 add(x) offer(x) 삭제 remove() poll() 검사 element() peek() 🖖 Queue 값 추가 add() : 큐가 꽉 찬 경우 IllegalStateException 에러 발생 offer() : 큐가 꽉 찬 경우 false 반환 🖖 Queue 값 제거 remove() : 큐가 비어 있는 경우 NoSuchElementException 에러 발생 poll() : 큐가 비어 있을 경우 null 반환 clear() : 큐 비우기 🖖 Queue 맨 앞 값 확인 element() : 큐가 비어 있는 경우 NoSuchElementException 에러 발생 peek() : 비어..

JAVA/Data Structure 2022.10.10

[JAVA] HashMap

🌟 주요 메소드 void clear() 모든 매핑을 맵으로부터 삭제한다. Object clone() 현재 HashMap을 복제하여 반환한다. boolean containsKey(Object key) HashMap에 지정된 키가 포함되어 있는지 알려준다. (포함되어 있으면 true 반환) boolean containsValue(Object Value) HashMap에 지정된 값이 포함되어 있는지 알려준다. (포함되어 있으면 true 반환) Set entrySet() HashMap에 지정된 키와 값을 엔트리(키와 값의 결합)의 형태로 Set에 저장하여 반환 V get(Object key) 인자로 전달된 키의 값인 객체와 매핑되고 있는 Value를 반환한다. Object getOrDefalt(Object ke..

JAVA/Data Structure 2022.10.08
728x90
반응형