java programming

    [Java] Optional로 Null 체크하기 - Java8이상

    [Java] Optional로 Null 체크하기 - Java8이상

    NullPointerException을 방지하기 위해 null인지 체크해야하는 상황이 많습니다. Java에서는 ifnull이나 nvl같은 메서드가 없어서 불편했는데, 이를 개선시키기 위해 Java8부터 Optional이라는 클래스를 도입했습니다. (다양한 예제를 살펴보다보니, String 타입의 변수에 ifnull, nvl처럼 사용하는 데에는 오히려 더 복잡해보이는 것 같기도 합니다... 그냥 if(str == null) str = "" 쓰기로함) Optional 사용법 null이 될 수 있는 값을 감싸는 Wrapper클래스입니다. 생성자 Optional.of(value): 주어진 값으로 Optional 객체를 생성합니다. 값이 null이 아니어야 합니다. String value = "Hello, Opt..

    [Java] equals NullPointerException(NPE) 다루기

    [Java] equals NullPointerException(NPE) 다루기

    equals를 사용하다보면 NullPointerException를 많이 볼 수 있습니다. //map = {NAME=jiyoon} String test = map.get("TEST"); //null test.equals("hi"); //NullPointerException equals를 호출하는 문자열이 null이기 때문이므로, 다음과 같은 처리를 해줍니다. 1. equals를 호출하는 문자열(변수)이 null인지 확인하기 //map = {NAME=jiyoon} String test = map.get("TEST"); //null if(test ! = null) test.equals("hi"); 2. 비교할 문자열이 equals 호출 //map = {NAME=jiyoon} String test = map.g..

    [Java] LocalDate 비교

    [Java] LocalDate 비교

    compareTo() : 두 날짜가 동일하면 0, 호출한 객체에서 비교 객체의 차이값 리턴 isBefore() : 호출한 객체가 비교 객체보다 이전 날짜인지 true/false 리턴 isAfter() : 호출한 객체가 비교 객체보다 이후 날짜인지 true/false 리턴 isEqual() : 호출한 객체와 비교 객체가 동일한지 true/false 리턴 equals() : 호출한 객체와 비교 객체가 true/false 리턴 compareTo() import java.time.LocalDate; public class Main { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2023, 8, 10); LocalDate date..

    [JAVA] HashMap, LinkedHashMap - value로 key찾기

    [JAVA] HashMap, LinkedHashMap - value로 key찾기

    HashMap, LinkedHashMap에서 value로 key를 찾을 때 사용하는 방법입니다. 1. map을 반복하면서 값 찾기 모든 엔트리를 확인해야하므로 실행 시간이 오래 걸립니다. HashMap map = new HashMap(); map.put("a" , 100); map.put("b" , 200); map.put("c" , 300); for (Map.Entry entry : map.entrySet()) { if(entry.getValue() == 100){ return entry.getKey(); } } 2. key와 value를 바꾼 map생성 첫번째 방법보다 빠르게 key를 찾을 수 있지만, 두 개의 hashmap을 유지해야한다는 단점이 있습니다. 1) 모든 key의 value가 다를 경우..