java 5

[Stream API] map과 flatMap

Stream API. 자바로 개발을 하면 자주 쓰게 되는 API 중 하나입니다. 그리고 map과 flatMap은 stream api와 자주 쓰이는 걸 볼 수 있습니다. 이 두 친구들은 똑같은 type을 return 하지만 어느정도 차이가 있는데요.어떻게 다른지 이 포스트에서 설명해드리겠습니다. Map 공식 Documentation의 정의는 "map은 주어진 함수를 통해 만들어진 결과들을 Stream의 형식으로 return한다는 말인데요." 쉽게 말하자면 Argument로 받은 Function을 stream이 가지고 있는 element의 값을 바꿔주는 겁니다. Example List mapPractice = List.of(1,2,3,4,5); List afterMap = mapPractice.stream(..

Java 2023.08.21

오버라이딩(Overriding) vs. 오버로딩(Overloading)

오버라이딩 vs. 오버로딩 이름이 비슷해서 자주 헷갈리는 경우가 많아서 이 포스트로 개념을 정리하고자 합니다. 오버라이딩 (Overriding) 객체 지향 언어에서 오버라이딩은 상속과 관련이 되어있습니다. Child 클래스들은 Parent class에서 정의된 method들을 사용 할 수 있는데 이런 것들은 inherited method라고 불립니다. 혹은 child 클래스가 parent class의 method와 똑같은 이름, parameter, return type을 가지고 있으면 overriding method 라고 불립니다. Overriding의 이런 특성은 다형성 (polymorphism)에 속합니다. 정리하자면 Parent class에 선언된 method의 이름, parameter, retur..

Java 2022.01.13

1010. Pairs of Songs With Total Durations Divisible by 60

문제 - 두 가지 곡 시간의 합이 60으로 나뉘어지는 Pair의 수를 찾아라 해결방법 1. Brute Force를 이용해서 곡 pair의 합이 60으로 나뉘어지는 곡들 찾기 2. 각 곡들의 시간을 60으로 나누었을 때 나머지 값이 같은 곡이 있다면 +1 해주기. class Solution { public int numPairsDivisibleBy60(int[] time) { int output = 0; int size = time.length; for (int i = 0; i < size; i++){ for(int j = i+1; j < size; j++){ int totalTime = time[i] + time[j]; if (totalTime % 60 == 0){ output++; } } } retur..

Algorithm/LeetCode 2022.01.03

811. Subdomain Visit Count

학기 끝나고 오랜만에 풀어보는 알고리즘 문제다. C++을 사용하다가 Java로 넘어오면서 적응하느라 고생을 좀 했다. 문제 - 숫자와 도메인으로 이루어진 String pair - 앞에 숫자는 도메인을 얼마나 방문했는지 나타내는 것 - 도메인을 "."으로 나누었을 때 각각 총 방문 숫자를 각각 나태는 List를 return 할 것 해결 방법 - Hash Table과 Brute Force를 이용하기 public List subdomainVisits(String[] cpdomains) { int size = cpdomains.length; HashMap map = new HashMap(); List output = new ArrayList(); for (int i = 0; i < size; i++){ //Sp..

Algorithm/LeetCode 2022.01.02

객체(Object)란 무엇일까요?

자바는 객체 지향 (Object-Oriented) 언어입니다. 객체 지향언어의 특징을 가지고 있는 언어인 자바는 기본적으로 여러가지 개념을 지원하게 됩니다. Polymorphism (다형성) Inheritance (상속) Encapsulation (캡슐화 or 은닉) Abstraction (추상화) Classes (클래스) Objects (객체) Instance (인스턴스) Method (메소드) Message Passing 앞으로 이 개념들에 대해서 포스트를 할 예정입니다. 오늘은 그 중에서 객체(Object)에 대해서 설명을 해드리겠습니다. 객체 (Object) 객체는 현실에서 행동(behavrios), 상태(States)를 가집니다. 예를들어 고양이는 색깔(color), 발톱(claw), 이름(na..

Java 2020.04.25