Java
-
Java - ArrayList addAll과 add의 차이점Java 2024. 11. 19. 23:16
자바의 ArrayList에서 addAll() 메소드와 add() 메소드의 차이점은 다음과 같습니다. 1. 추가하는 요소의 수add(): 한 번에 하나의 요소만 추가합니다.addAll(): 여러 요소를 한 번에 추가할 수 있습니다. 2. 매개변수 타입add(): 단일 요소를 매개변수로 받습니다.addAll(): Collection 타입의 객체를 매개변수로 받습니다. 3. 사용 목적add(): 리스트에 개별 요소를 추가할 때 사용합니다addAll(): 다른 컬렉션의 모든 요소를 현재 리스트에 추가할 때 사용합니다 4. 리턴값add(): 요소가 성공적으로 추가되면 true를 반환합니다.addAll(): 리스트가 변경되었으면 true를, 그렇지 않으면 false를 반환합니다. 5. 내부 동작add(): 단순히 ..
-
Java - 컬렉션 정렬 시 Null safeJava 2024. 6. 21. 23:23
자바8부터 도입된 Stream을 이용하면 Collection을 정렬할 수 있다. Comparator 클래스를 이용해서 쉽게 정렬이 가능하다. List list = Arrays.asList(Person.of(30), Person.of(35));List sortedList = list.stream() .sorted(Comparator.comparing(Person::getAge)) .collect(toList()); Comparator.comparing() 메서드에 람다식을 넘겨서 age를 기준으로 정렬이 가능하다. 그런데 이 때 Person의 age가 Null인 경우가 발생하면 정렬하는 중에 NPE가 발생한다. 이럴 경우 NullPointerException을 방지하기 위해서 Co..
-
Java - Set example code 사용법Java 2024. 4. 1. 22:56
자바에서 Set은 중복 요소를 포함할 수 없는 Collection입니다. Set의 종류로는 HashSet, LinkedHashSet, TreeSet 등이 있습니다. Set의 용도 Set은 중복을 허용하지 않는 데이터 집합을 관리할 때 사용합니다. 예를 들어, 고유한 값을 관리해야 할 때나 데이터의 존재 여부가 중요할 때 주로 사용합니다. Set의 주요 특징 1. 중복 요소 불허: Set은 각 요소의 유일성을 보장. 동일한 요소를 두 번 추가하려고 하면, 무시됨. 2. 순서 미보장: 요소들이 특정 순서로 저장되지 않음. 순서를 보장하지 않음. Set 코드 예제 import java.util.HashSet; import java.util.Set; public class Example { public stat..
-
Java - ArrayList 초기화Java 2024. 3. 26. 23:16
자바에서 ArrayList(List)를 초기화하는 방법을 소개합니다. 1. Arrays.asList()를 이용한 초기화 Arrays.asList() 를 사용하여 초기 값들로 ArrayList를 초기화할 수 있습니다. 고정된 크기의 리스트를 생성하므로, 나중에 element를 추가하거나 삭제할 수 없습니다. List list = Arrays.asList("Element1", "Element2", "Element3"); 2. 익명 내부 클래스를 이용한 초기화 익명 내부 클래스를 사용하여 초기화 블록에서 ArrayList를 초기화할 수 있습니다. List list = new ArrayList() {{ add("Element1"); add("Element2"); add("Element3"); }}; 3. Str..
-
Java - int를 String으로 변환하기Java 2024. 3. 25. 23:07
Java에서 int(Integer)를 String 문자열로 바꾸는 방법입니다. 1. String.valueOf(int) int num = 123; String str = String.valueOf(num); System.out.println(str); // Outputs "123" 2. Integer.toString(int) int num = 123; String str = Integer.toString(num); System.out.println(str); // Outputs "123" 3. String.format(String, Object...) int num = 123; String str = String.format("%d", num); System.out.println(str); // Outp..
-
Java - LocalDateTime custom Serializer DeserializerJava 2023. 9. 19. 07:45
Spring에서 LocalDateTime을 사용하다보면 serialize, deserialize 할때 에러가 종종 발생한다. 그럴때 전체 config를 고치는 방법도 있지만 커스텀 serializer, deserializer를 만들어서 활용하는 방법이 있다. Serializer import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.time.LocalDateTime; import java.time.form..
-
Java - Enum for loop, forEach(), iteratorJava 2023. 3. 4. 00:01
자바의 Enum 값을 loop를 돌면서 처리하는 방법을 알아보겠습니다. public enum DaysOfWeekEnum { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 요일에 대한 Enum을 정의하고 loop를 도는 코드를 작성해보겠습니다. 1. for loop for (DaysOfWeekEnum day : DaysOfWeekEnum.values()) { System.out.println(day); } 2. forEach() Arrays.asList(DaysOfWeekEnum.values()) .forEach(day -> System.out.println(day)); 3. EnumSet EnumSet.allOf(DaysOfWeekEn..
-
Java - String.replace(), String.replaceAll() 차이Java 2023. 3. 3. 23:33
자바에서 문자열의 특정 문자를 대치해줄 때 replace() 함수를 사용합니다. String.replace(), String.replaceAll() 두 함수가 어떤 차이가 있는지 알아보겠습니다. String test = "ABCCDDD"; System.out.println(test.replace("C", "D")); System.out.println(test.replaceAll("C", "D")); 이러면 코드의 결과는 두개가 동일합니다. 둘다 특정 문자를 대치해주는 함수이므로 결과는 같지만 내부 구현이 다르기 때문에 성능이 차이가 있습니다. String.replace() 함수의 실제 구현 부분입니다. public String replace(char oldChar, char newChar) { if (o..