java 6

[java] map과 flatMap의 차이

면접질문으로 나왔던 map과 flatMap의 차이점을 복기한다. Java 8 에서 Optional, stream이 추가되었고 이에 사용될 수 있는 map()와 flatMap() 의 목적이 다르다. Optional에서 Map, flatMap 사용법 다음 예시는 "test"를 대문자로 변환한다. Optional s = Optional.of("test"); Assertions.assertEquals(Optional.of("TEST"), s.map(String::toUpperCase)); System.out.println(Optional.of("TEST")); //output: Optional[TEST] 더 복잡한 경우에 Optional.of() 파라미터값으로 Optional.of()가 반환되는 함수가 들어갔다..

language/java 2022.06.09

Annotation 생성시 @Retention

Custom Annotation을 만들어 사용할 때 @Retention() annotation을 다들 접한 적 있을 것이다. @Retention() 은 annotatin의 life cycle, 즉 언제까지 살아 남아 있을지를 결정한다. import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE_USE)..

language/java 2022.02.13

알고리즘을 위한 Java 입출력

Hackerrank에서 입출력 소스는 기본으로 제공해주다 보니 타기관 알고리즘 문제를 풀 때 입출력 처리를 못하는 문제가 발생했다. python에서는 input, c++에서는 cin으로 간편하게 처리 가능이지만, Java IO를 위해서는 Scanner, BufferedReader 객체를 사용해야 한다. 주로 Scanner를 많이 사용하지만 속도측면에서는 BufferedReader가 우수하다. Scanner, Sysout import java.util.Scanner; class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a; String b; a = sc.nextInt(); sc.nextLine..

algorithm/java 2022.02.07

java int와 Integer의 차이

java로 개발하다보면 Integer.valueOf(String); Integer.parseInt(String); Map(Integer, String); 처럼 int와 다른 Integer라는 type을 사용하는 걸 볼 수 있다. 이 둘이 어떤 차이가 있는지 알아보도록 하자. 1. int (Primitive 자료형) - '자료형' 을 의미한다. (int, float, long, double 와 같은 하나의 primitive 자료형을 의미) - '산술 연산'이 가능하다. - null로 초기화 불가능 (0으로만 초기화 가능) 2. Integer (Wrapper 클래스-객체) - Wrapper '클래스'를 의미한다. - Unboxing 을 하지 않으면 산술 연산이 불가능하지만, null값을 처리할 수 있다. -..

algorithm/java 2021.07.04

hackerrank/warm up/Counting Valleys

https://www.hackerrank.com/challenges/counting-valleys/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=warmup 등산가가 협곡을 몇개 지나가는지 알아보는 문제이다. (baseline = 0) string type을 list로 바꾸고 iterate 시키고 싶었는데 이 부분에서 List 타입이 좀 헷갈렸다. 여기서, ArrayList와 그냥 Array의 차이점이 무엇인지 짚고 넘어가자면, - List = interface - ArrayList = class 이라는데 이를 비교해보자. ArrayList List 이는 결국 같은 결과를 도출한다. 그러나 ..

algorithm/java 2021.05.23