[JAVA] 자바의 Map, 그리고 순회
·
JAVA
안녕하세요.오늘은 자바의 Map 종류와, Map을 순회를 하는 방법에 대해 알아보겠습니다. 맵(Map)이란?Map은 키(key)와 값(value)을 한 쌍으로 저장하는 데이터 구조입니다.키를 이용해 값을 조회하기 때문에 검색 속도가 빠릅니다.다양한 타입의 데이터를 저장할 수 있습니다.자바의 컬렉션(Collection) 프레임워크의 한 종류입니다. 1. HashMap2. LinkedHashMap3. TreeMap4. ConcurrentHashMap5. WeakHashMap6. EnumMap 1. HashMap: 일반적인 Map입니다.2. LinkedHashMap: 삽입 순서를 유지합니다.3. TreeMap: 정렬된 순서가 필요할 때 사용합니다.4. ConcurrentHashMap: 스레드 안전이 중요한..
[JAVA] 인터페이스란(Interface)? - 추상클래스와의 차이
·
JAVA
안녕하세요.오늘은 자바의 인터페이스(Interface)에 대해 알아보겠습니다.또한 인터페이스와 추상 클래스의 차이점에 대해서도 알아보겠습니다.   [ 목차 ]   인터페이스란?인터페이스는, 클래스가 반드시 구현해야하는 메서드들의 집합입니다.메서드의 선언만 포함합니다. (구현은 포함하지 않습니다.)     인터페이스의 특징인터페이스 내의 메서드는 public 과 abstract로 선언됩니다.java 8부터는 default(인터페이스내 기본 구현 가능)와 static 메서드를 구현할 수 있습니다.클래스는 인터페이스 다중상속이 가능합니다.인터페이스 내 변수(필드)를 가질 수 있습니다. 필드는 public static final로 고정됩니다.      추상 클래스일부 메서드는 구현할 수 있습니다.하지만 인스턴스..
[JAVA] Stack
·
JAVA
안녕하새오.오늘은 자바의 Stack 인터페이스에 대해 알아보겠습니다.  [ 목차 ]   Stack이란?LIFO(Last In, First Out) 방식으로 작동하는 자료구조입니다.java.util.Stack 패키지에 포함되어 있고, Vector 클래스를 상속받습니다.(Vector 클래스는 멀티스레드 환경에서 동기화를 제공합니다)동기화된 메서드를 제공하지만, Deque보다 느립니다.1-based 인덱스를 사용합니다. (배열은 0-based 인덱스)크기가 고정되어 있지 않습니다. OutOfMemoryError 발생하지 않는 한 무제한으로 push 가 가능합니다.import java.util.Stack;public class Main { public static void main(String[] args..
[JAVA] Deque + 왜 LinkedList보다 ArrayDeque로 구현하는 것이 더 좋을까?
·
JAVA
안녕하세요.오늘은 자바의 Deque 인터페이스에 대해 설명하겠습니다.그리고 왜 ArrayDeque로 Queue/Stack/Deque를 구현하는 것이 LinkedList 구현보다 더 유리한지 알아보겠습니다. [ 목차 ]  Deque란?FIFO와 LIFO 두 방식으로 데이터 처리가 가능한 자료구조입니다.양방향 삽입 및 삭제가 가능합니다. Queue 인터페이스를 확장한 인터페이스입니다.ArrayDeque, LinkedList, PriorityDeque로 구현할 수 있습니다.자바의 컬렉션 프레임워크에 속합니다. 자바의 컬렉션 프레임워크란?컬렉션 : 다수의 데이터프레임워크 : 표준화된 프로그래밍 방식-> 데이터 그룹을 저장하는 클래스들을 표준화한 설계 입니다. 컬렉션 프레임워크 사용시, 객체지향적이고 재사용성이 ..
[Java] Queue
·
JAVA
[ 목차 ]안녕하세요.오늘은 자바의 Queue 인터페이스에 대해 알아보겠습니다. Queue란?자바에서 Queue는 선입선출 구조를 가진 자료구조이다.java.util.Queue 인터페이스로 정의된다.LinkedList, PriorityQueue 등이 java.util.Queue 인터페이스를 구현한 대표적인 클래스들이다.    offer(E e) / add(E e)큐의 맨 뒤에 요소를 추가한다. offer(E e) : 크기 제한으로 실패시 false를 반환한다.add(E e) : 크기 제한으로 실패시 IllegalStateException을 발생시킨다.    poll() / remove()큐의 맨 앞에 있는 요소를 제거하고, 그 값을 반환한다. poll() : 큐가 비어있으면 null을 반환한다.remov..