JAVA
JAVA Enum
JAVA Enum
2022.02.24Enum(열거 타입)이란? 몇 가지 상수의 집합을 정의하는 클래스 타입입니다. 미리 정의해둔 값을 사용합니다. 이로 인해서 얻을 수 있는 장점들을 알아보겠습니다. 1. 문자열을 비교하여 자동완성, 오타 검증등을 할 수 있음 2. 미리 정의 해둔 값들로 허용되는 값들을 제한할 수 있음 3. 추가적인 상수 생성 시 Enum만 변경해도 되므로 리팩터링에 유리함 Enum 기본 사용법 Enum 선언 enum Animal{ DOG, CAT, HORSE } Animal a = Animal.DOG; System.out.println(a); // DOG 출력 Enum의 toString은 이름을 출력해줍니다. Enum 인자 enum Animal{ DOG("happy",10), CAT("marry",5), HORSE("go..
JAVA Stream
JAVA Stream
2022.02.23Stream이란? java에서 데이터의 흐름을 생성할 수 있습니다. 이러한 흐름을 Stream이라고 합니다. Stream을 생성하고 데이터에 연산을 진행할 수 있습니다. 1. 중간 연산 -> 마지막이 아닌 위치에서 실행되는 연산 2. 최종 연산 -> 마지막에 진행되는 연산 연산들을 이용해서 데이터를 가공하는 것이 Stream의 목표라고 할 수 있습니다. Stream 생성 Stream을 생성하는 여러 가지 방법을 살펴보겠습니다. primitive 자료형 int [] arr1 = new int[10]; IntStream stream1 = Arrays.stream(arr1); double [] arr2 = new double[10]; DoubleStream stream2 = Arrays.stream(arr2)..
JAVA Optional<T>
JAVA Optional<T>
2022.02.23Optional 이란? Optional은 null이 올 수 있는 값을 감싸는 Wrapper 클래스입니다. 즉 개발자는 null을 검증하는 로직을 일일이 작성할 필요 없이 Optional로 감싼 후 Optional의 매소드들을 사용해 가공할 수 있습니다. 간단하게 Optional 사용하지 않은 코드와 사용한 코드를 살펴보겠습니다. Box 안에 담겨 있는 Toy를 가져오는 코드입니다. 이때 Toy가 초기화되지 않아서 NullPointerException이 발생합니다. class Box{ Toy toy; public Toy getToy(){ return toy; } } class Toy{ String name; public String getName() { return name; } } public class..
JAVA 람다(lambda)
JAVA 람다(lambda)
2022.02.21lambda란? 함수형 프로그래밍에서 사용되는 개념입니다. 익명(Anonymous) 함수라고 불립니다. lambda 특징 1. 추론이 가능한 코드는 제거해 코드가 간결하다 -> 가독성 향상 2. 전달되는 매개변수에 따라서 행위가 결정된다. 3. 람다식 표현 = (파라미터) -> {몸체} 몸체는 return문이 없는 단 일행 일면, {} 생략 가능 코드로 예시를 보겠습니다. interface Calculator{ // 추상 메소드가 하나인 인터페이스 void operation(int a, int b); } public class Main { public static void main(String[] args) throws IOException { Calculator calculator = new Calcu..
JAVA Comparable And Comparator
JAVA Comparable And Comparator
2022.02.21Comparable And Comparator 란? 두 개 모두 interface이며, 객체를 정렬시키는데 이용됩니다. 정렬을 이용하기 위해선 함수를 구현해야 합니다. Comparable과 Comparator 기본 사용 1. Comparable public interface Comparable { // 제네릭이 사용됩니다. public int compareTo(T o); } compareTo() 구현합니다. 반환형이 int입니다. 양수, 0, 음수로 구분되어 정렬을 결정합니다. 0과 음수일 때는 순서를 바꾸지 않고 양수일 때 변경합니다. 비교하는 대상을 설정하고, 현재 객체와 다른 객체를 비교합니다. class Node implements Comparable{ int score; public Node(i..
Java 제네릭(Generic)
Java 제네릭(Generic)
2022.02.20제네릭 (Generic)이란? 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해서 지정되는 것입니다. 즉 데이터의 타입(data type)을 일반화(generalize)하는 것입니다. 글만으로는 이해가 잘 가지 않아 코드로 살펴보겠습니다. class GenericsBox{ // 제네릭을 사용하는 클래스 private T type; // 타입을 외부에서 주입받습니다. public GenericsBox(T type) { this.type = type; } @Override public String toString() { return "this is "+type.getClass()+" class"; } } public class Main { public static void main(String[] ..