java(16)
-
HashMap의 Rehashing과 Load factor (with. Java)
아래 2개 링크의 글을 읽고 정리한 글. GeeksforGeeks가 틈틈히 읽기 좋은 글들이 많아서 좋다. Load Factor in HashMap in Java with Examples - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org Load Factor and Rehashing - GeeksforGeeks A..
2022.11.27 -
다형성이 적용된 Object로 JSON 전환하기
Jackson의 기본 사용부터 다형성이 적용된 Object로 JSON 데이터를 전환하는 방법까지 알아본다. 1. 환경구성 Gradle 프로젝트에서 jackson-databind 의존성을 추가한다. implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3' spring-boot-starter-web 의존성을 사용하고 있다면 자동으로 추가된다. 2. JSON to Object Shop 클래스를 작성한다. setter가 없으면 매핑시에 에러를 발생시키기 때문에 꼭 작성하자. public class Shop { private String shopName; private int shopAge; private List staffNames; //gette..
2022.09.10 -
[LeetCode] 문제 복기(322번, 491번, 1372번, 1253번)
322. Coin Change 동전의 목록인 coins가 주어진다. coins로 만들어야하는 amount가 주어진다. coins로 amount를 만들때 가장 적은수를 사용하는 케이스를 출력해야한다. class Solution { public int coinChange(int[] coins, int amount) { // amount가 0이면 만들수 없다 if(amount == 0) return 0; int[] dp = new int[amount+1]; // dp 구현을 위한 공간 할당 Arrays.fill(dp, Integer.MAX_VALUE); // 각 dp 원소에는 Integer의 최대값으로 초기화 Arrays.sort(coins); // coins를 오름차순으로 sorting List coinLi..
2022.04.27 -
[LeetCode] 문제 복기(886번, 390번,684번,1685번,983번)
LeetCode를 풀면서 고생했던(?) 문제와 재밌게 풀었던 문제들을 돌아보는 시간. 886. Possible Bipartition 서로 함께할 수 없는 번호들이 주어지고 return으로 2개의 그룹을 만들 수 있는지를 넘겨줘야하는 문제다. 탐색으로 풀어야겠다고 생각하고 접근까지는 했으나 상태를 3개로 구분하지 못해서 헤맸다. (돌아보면 진짜 아무것도 아닌데) 방문, 미방문이 아니라 미방문, 그룹1, 그룹2 이런식으로 3가지의 상태를 통해 문제를 풀었어야했다. class Solution { public static boolean possibleBipartition(int N, int[][] dislikes) { int[] peopleGroup = new int[N+1]; Map graph = new Ha..
2022.04.17 -
[Kafka] Consumer의 3가지 수신 방법 + Segment 삭제
지난 시간에 이어 이번엔 Consumer를 Java로 구현해본다. Segment 삭제 peter-basic01을 Consume하면 Topic에 존재하는 모든 레코드가 출력된다. 이전 포스트에서 peter-basic01로 3건의 Record를 보냈기 때문에 새로운 Consumer가 Partition의 0번째 offset부터 모두 읽어오는 모습이다. 원할한 테스트를 위해서 Partition에 있는 레코드를 모두 지워보도록 하자. Topic에 있는 Partition으로 레코드가 들어오면 Segment라는 파일에 저장된다. Segment 확인을 위해서 /data/kafka-logs 경로로 이동한다. 이전에 peter-basic01 Topic을 생성했기 때문에 peter-basic01-0 디렉토리가 존재하는것을 ..
2022.03.28 -
[Design Pattern] GoF's Builder vs. Joshua Bloch's Builder
빌더패턴은 오브젝트 생성과 관련된 패턴이다. ( Createtional design pattern ) 빌더 패턴과 관련해서 GoF가 소개한것과 Joshua Bloch가 소개한 빌더패턴이 약간 다른데 오늘은 두가지 코드를 모두 작성해보려고 한다. GoF's Builder Pattern 큰 맥락은 비슷하지만 GoF 빌더패턴을 구현하는 방법에 따라 인터페이스가 좀더 추가되는 경우가 있다. 개인적으로 아래의 예시가 제일 코드가 심플하고 이해가능한(?)수준인것 같다. GeeksForGeeks에 있는 예제코드는 개인적으로 너무 장황한 느낌이다. Builder Say you have a constructor with ten optional parameters. Calling such a beast is very in..
2021.12.26