์ค๋ฌด์์ ์์ฃผ ๋ฐ์ํ๋ ์ํฉ์ stream API์ Optional ์ ์ฉํ๊ธฐ ๋ฐฑ์๋ ์ค๋ฌด์์ ์์ฃผ ๋ฐ์ํ๋ ์ผ ๋ฐ์ดํฐ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค. ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๊ฐ ์๋๊ฐ? ์๋ค -> ์์ธ ๋ฐ์! ์๋ค -> ๋ค์ ์์ ์คํ for + if๋ก ์ฒ๋ฆฌํ๊ธฐ vs stream API + Optional๋ก ์ฒ๋ฆฌํ๊ธฐ list ์์ 1234 ๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ์ดํด๋ณด๊ฒ ๋ค. for + if๋ก ์ฒ๋ฆฌํ๊ธฐ public class ForAndIfFilterExampleMain { public static void main(String[] args) { int[] integerArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; List integerList = Arrays.stream(integerAr..
stream API public class ForIterationExampleMain { public static void main(String[] args) { List integerList = new ArrayList(); integerList.add(10); integerList.add(20); integerList.add(30); integerList.add(40); integerList.add(50); integerList.add(60); integerList.add(70); for (int i = 0; i stream API ๋ฅผ ์ฌ์ฉํ์ง ์์ ๋. for ..
https://giken.tistory.com/entry/Java-if%EB%AC%B8-%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0 [Java] if๋ฌธ ์ ๊ฑฐํ๊ธฐ ๋๋ฌด ๋ง์ if, else ๋ ์ฝ๊ธฐ ์ด๋ ค์ด ์ฝ๋๊ฐ ๋๋ค .. ์ด ๋๋ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ๋ ์ด๋ ต๊ณ ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ ๋๋ ์ด๋ ค์ธ ์ ๋ฐ์. if ๋ฌธ์ด ๋ง์ ์ฝ๋์์ ์ด๋ป๊ฒ if ๋ฌธ์ ์ ๊ฑฐํ ์ง ํ๋ฒ ์๊ฐํด๋ณด์. public giken.tistory.com ์ ํฌ์คํ ์ ์ฝ๋์ ์ด์ด์ ์งํ๋ฉ๋๋ค. getter ublic class Client { public int someMethod(CalculateCommand calculateCommand) { CalculateType calculateType = calculateCommand.g..
๋๋ฌด ๋ง์ if, else ๋ ์ฝ๊ธฐ ์ด๋ ค์ด ์ฝ๋๊ฐ ๋๋ค .. ์ด ๋๋ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ๋ ์ด๋ ต๊ณ ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ ๋๋ ์ด๋ ค์ธ ์ ๋ฐ์. if ๋ฌธ์ด ๋ง์ ์ฝ๋์์ ์ด๋ป๊ฒ if ๋ฌธ์ ์ ๊ฑฐํ ์ง ํ๋ฒ ์๊ฐํด๋ณด์. public class CalculateCommand { private CalculateType calculateType; private int num1; private int num2; public CalculateCommand(CalculateType calculateType, int num1, int num2) { this.calculateType = calculateType; this.num1 = num1; this.num2 = num2; } public CalculateType getCalcul..
Optional ์ null ๊ฐ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํด๋์ค์ ๋๋ค. without Optional public class SimpleNpeExampleMain { public static void main(String[] args) { String string = getNullString(); System.out.println("string=" + string); System.out.println(string.toUpperCase()); } private static String getNullString() { return null; } } ๊ทผ๋ฐ ์ด๋ ๊ฒ ๋น์ฐํ๊ฒ null ์ด ํฐ์ง๋ ๊ฒฝ์ฐ๋ ์ค์ ์ํฉ์์ ์์ ๊ฒ์ด๋ค. ์ข ๋ ํ์ค์ ์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. public class MapRepository { p..
Object ํด๋์ค๋? ๋ชจ๋ ํด๋์ค๋ Object ํด๋์ค์ ์์ ํด๋์ค์ด๋ค. public class SomeObject { } public class SombeObject extends Object { } ๋ฐ๋ผ์, extends Object ๊ฐ ์๋ต๋์ด ์๋๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. Object ํด๋์ค์ ์ฃผ์ ๋ฉ์๋๋ค clone(), equals(), finalize(), getClass(), hashCode(), notify(), notifyAll(), toString(), wait() ์ด ์ค์์๋ ํนํ ์์ฃผ ์ฌ์ฉํ๋ ์ธ ๊ฐ์ง ๋ฉ์๋๋ฅผ ์์๋ณด๋ คํ๋ค -> equals(), hashCode(), toString() equals() ๋์ผ์ฑ : ๋น๊ต ๋์์ด ์ค์ ๋ก '๋๊ฐ์' ๋์์ด์ด์ผ ํจ ( = ๋์ ์ค์ ๋ก๋ ํ..
Checked Exception ๊ณผ Unchecked Exception ์ ๋ฌด์จ ์ฐจ์ด์ธ๊ฐ์? (์ค์) ์์ฃผ ์ด์ผ๊ธฐํ๋ ์ค๋ต Checked Exception ์ ์ปดํ์ผํ ๋ ๋ฐ์ํ๊ณ , Unchecked Exception ์ ๋ฐํ์์ ๋ฐ์ํ๋ ์์ธ๋ก ์๊ณ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ต๋ณ ! Checked Exception ์ ์ปดํ์ผํ ๋ ์์ธ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ Unchecked Exception ์ ์์ธ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ์ง ์์ต๋๋ค. ์ ์๋์ด์์ง ์์, ์๋ก์ด ์์ธ๋ฅผ ์ ์ํด์ผํ ๋๋ → Unchecked Exception ์ ์์๋ฐ์์ ์ด๋ค ! ๋๋ถ๋ถ์ ์์ธ๋ ๋ก์ง์์ ํด๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ Checke Exception์ ์ฐ๋ฉด, ๋์ง๋ ์์ธ๋ผ๋ ๊ฒ์ด ์ธ๋ถ์ ์๋ ค์ง→ ์บก์ํ๊ฐ ๊นจ์ง ์์ธ๋ฅผ ์ปดํ์ผ ๋์ค์ ์ฒ๋ฆฌํ๊ณ ์ถ..
import java.util.function.BiFunction; // ๋๋ค๋ก ๋ฐ๊พผ ์ฌ์น์ฐ์ฐ์ ํํํ๋ enum enum Expression { ADD((x, y) -> x + y), SUBTRACT((x, y) -> x - y), MULTIPLY((x, y) -> x * y), DIVIDE((x, y) -> { if (y != 0) { return x / y; } else { throw new ArithmeticException("Division by zero"); } }); private final BiFunction operation; Expression(BiFunction operation) { this.operation = operation; } int apply(int x, int y) { ..