Language/Java 19

[Java] Getter, Setter 메서드 정리

Getter, Setter 사용 이유 자바에서는 데이터 보호와 은닉을 위한 효과적인 방법으로 접근 제어자를 사용한다. 객체지향의 캡슐화의 목적을 달성하면서도 데이터의 변경이 필요한 경우는 getter와 setter 메서드를 사용한다. 대표적으로 private 접근제어자가 포함되어 있는 객체의 변수의 데이터 값을 추가하거나 수정하고 싶을 때 사용 코드 예시 public class GetterSetterTest { public static void main(String[] args) { Worker w = new Worker(); w.setName("김코딩"); w.setAge(30); w.setId(5); String name = w.getName(); System.out.println("근로자의 이름은 ..

Language/Java 2022.10.11

[Java / 자료구조] Deque 개념 및 정리

Deque 정의 Deque는 Double Ended Queue의 양방향 대기열이라고도 불리는 자료구조이다. 양방향으로 열려있는 구조로 Queue와 외형적으로 비슷한 구조이다. 그러나 Deque는 Stack과 Queue와 달리 LIFO, FIFO와 같은 순서에 구속되지 않는다. Deque 특징 Stack 및 Queue를 모두 사용할 수 있다. Deque는 양쪽으로 데이터를 추가하고 삭제할 수 있어서 Stack과 Queue를 구현할 수 있다. 추가와 삭제를 양쪽에서 제어할 수 있어서 여러 형태로 사용할 수 있다. 추가를 제한하는 구조 한쪽에서만 데이터 추가가 가능하고 삭제는 양방향에서 가능하게 구현한다면 아래와 같은 구조 데이터 추가의 방향이 정해진 상태가 된다. 왼쪽으로 삭제하는 형태는 Stack과 같고 ..

Language/Java 2022.10.10

[Java] 배열 (Array) 개념 및 정리

배열(Array)이란? 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미한다. 즉, 값들이 같은 의미를 지니면서 서로 연관성이 있을 때, 이들을 하나의 덩어리로 묶을 수 있으며, 이렇게 묶인 값들의 집합을 배열이라고 한다. 배열이 가진 각 값들을 배열의 요소라고 한다. 그리고 배열의 각 요소는 0에서부터 시작하는 번호를 부여받는데, 이처럼 각 요소가 부여받는 순번을 인덱스(index)라고 한다. 예를 들어 길이가 31인 배열을 생성하면 맨 첫 번째 요소의 인덱스는 0이며, 두 번째 인덱스는 1, 마지막 31번째 요소의 인덱스는 30이 된다. 배열을 선언했을 경우 요소들은 타입에 맞게 자동으로 초기화된다. 배열의 타입 초기값 char '\u0000' byte, short, int 0 long 0..

Language/Java 2022.10.01

[Java] BufferedReader와 BufferedWriter 정리

BufferedReader와 BufferedWriter란? BufferedReader와 BufferedWriter은 이름처럼 버퍼를 이용해서 읽고 쓰는 함수이다. 이 함수는 버퍼를 이용하기 때문에 입출력의 효율이 좋아진다. BufferedReader는 Scanner와 유사하고 BufferedWriter는 System.out.println( )과 유사하다. 두 기존에 쓰던 Scanner와 System.out.println( ) 보다 속도 측면에서 훨씬 빠르다. 하지만 BufferedReader는 Enter만 경계로 인식하고 받은 데이터가 String으로 고정되기 때문에 입력받은 데이터를 가공하는 작업이 필요하다. // 사용하기 위해 import 선언 import java.io.BufferedReader; ..

Language/Java 2022.10.01

[Java] 열거형 (enum) 정리

열거형(enum)이란? 여러 상수들을 보다 편리하게 선언할 수 있도록 만들어졌다. 열거형은 서로 연관된 상수들의 집합을 의미한다. 상수란 변하지 않는 값을 의미하며 final 키워드를 사용하여 선언할 수 있다. 열거형은 여러 상수들을 보다 편리하게 선언하고 관리할 수 있으며, 상수 명의 중복을 피하고, 타입에 대한 안정성을 보장한다. 훨씬 더 간결하고 가독성이 좋은 코드를 작성할 수 있다. 열거형 사용 enum 열거형 이름 {상수1, 상수2, ...} enum Seasons { SPRING, SUMMER, FALL, WINTER } enum Seasons { SPRING, //정수값 0 할당 SUMMER, //정수값 1 할당 FALL, //정수값 2 할당 WINTER //정수값 3 할당 } public ..

Language/Java 2022.09.29

[Java] 재귀 함수 (Recursion Function) 정리

재귀 함수(Recursion)란? 특정 함수 내에서 자기 자신을 호출하는 함수이다. 재귀 함수를 잘 활용하면 반복적인 작업을 해야 하는 문제를 좀 더 간결하게 풀어낼 수 있다. public void recursion() { System.out.println("This is"); System.out.println("recursion!"); recursion(); } 재귀 함수 사용 조건 문제의 크기를 점점 작은 단위로 쪼갤 수 있어야 한다. 재귀 호출이 종료되는 시점이 존재해야 한다. 재귀 함수의 장점 불필요하게 여러 개의 반복문을 사용하지 않기 때문에, 코드가 간결해지고, 수정이 용이하다. 변수를 여러 개 사용할 필요가 없다. 재귀 함수의 단점 코드의 흐름을 직관적으로 파악하기 어렵다. 반복하여 메서드를..

Language/Java 2022.09.29

[Java / 자료구조] 이진 탐색 트리 (Binary Search Tree) 정리

이진 탐색 트리 (Binary Search Tree)란? 자식 노드가 최대 두 개인 노드들로 구성된 트리이다. 이 두 개의 자식 노드는 왼쪽 자식 노드와 오른쪽 자식 노드로 나눌 수 있다. 이진 트리는 자료의 삽입, 삭제 방법에 따라 정 이진 트리(Full binary tree), 완전 이진 트리(Complete binary tree), 포화 이진 트리(Perfect binary tree)로 나뉜다 정 이진 트리(Full binary tree) : 각 노드가 0개 혹은 2개의 자식 노드를 갖는다. 완전 이진 트리(Complete binary tree) : 정 이진 트리이면서 완전 이진 트리인 경우이다. 모든 리프 노드의 레벨이 동일하고, 모든 레벨이 가득 채워져 있는 트리이다. 포화 이진 트리(Perfe..

Language/Java 2022.09.28

[Java] Map 정리

Map이란? Map 인터페이스는 키(Key)와 값(Value)으로 구성된 객체를 저장하는 구조를 가지고 있다. 여기서 이 객체를 Entry 객체라고 하는데, 이 Entry 객체는 키와 값을 각각 Key 객체와 Value 객체로 저장한다. Map 인터페이스를 구현한 클래스에는 HashMap, HashTable, TreeMap, SortedMap 등이 있다. Map은 키는 중복 저장될 수 없지만, 값은 중복 저장이 가능하다. 키의 역할이 값을 식별하는 것이다. 만약 저장된 키와 동일한 키로 값을 저장하면, 기존의 값이 새로운 값으로 대치된다. Map 인터페이스를 구현한 클래스에서 공통적으로 사용 가능한 메서드 put(Object key, Object value) 주어진 키로 값을 저장한다. 해당 키가 새로운..

Language/Java 2022.09.28

[Java / 자료구조] 그래프 (Graph) 정리

그래프(Graph) 그래프는 여러 개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조이다. 그래프의 구조 직접적인 관계가 있는 경우 두 점 사이를 이어주는 선이 있다. 간접적인 관계라면 몇 개의 점과 선에 걸쳐 이어진다. 하나의 점을 그래프에서는 정점(vertex)라고 표현하고 하나의 선은 간선(edge)라고 한다. 그래프의 표현 방식 인접 행렬 두 정점을 바로 이어주는 간선이 있다면 두 정점은 인접하다고 이야기한다. 인접 행렬을 서로 다른 정점들이 인접한 상태인지를 표시한 행렬로 2차원 배열의 형태로 나타낸다. 만약 A라는 정점과 B라는 정점이 이어져 있다면 1(true), 이어져 있지 않다면 0(false)으로 표시한 일종의 표이다. to 1 2 3 4 5 6 1 0 1 0 0 1 0 2..

Language/Java 2022.09.26

[Java] StringBuilder와 StringBuffer 정리

StringBuilder 한번 생성된 String 클래스의 인스턴스는 여러 개의 문자열을 더할 때 매번 새로운 인스턴스를 생성해야 한다. 만약 100만개의 문자열이 있는데 모두 더하는 작업이 필요하다면 인스턴스 생성과정이 100만번 이루어져야 하기 때문에 매우 비효율적이다. 그래서 StringBuilder를 사용한다. StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("문자열 ").append("연결"); String str = stringBuilder.toString(); System.out.println(stringBuilder); System.out.println(str); /* 출력 문자열 연결 문자열 연결 */ 먼저 ..

Language/Java 2022.09.26
반응형