전체 글
-
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..
-
Spring - JPA findBy findAllBy 차이점Spring 2024. 3. 27. 23:04
JPA를 쓰다보면 findBy를 써야할지 findAllBy를 써야할지 고민이 생기는 경우가 있습니다. findBy와 findAllBy는 어떤 차이가 있을까요? 정답은 findBy와 findAllBy는 동일하게 작동합니다. List findBySomeCondition(); List findAllBySomeCondition(); findBy와 findAllBy는 동일한 쿼리가 수행됩니다. 메서드에서 쿼리를 파생할 때 Spring Data에서는 All 부분을 무시됩니다. 중요한 부분은 By 뒤에 오는 키워드이며, 그 뒤에 오는 모든 것은 필드 이름으로 취급됩니다. Any text between find (or other introducing keywords) and By is considered to be d..
-
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..
-
Spring - JPA InvalidDataAccessApiUsageExceptionSpring 2024. 3. 25. 22:51
Spring JPA에서 @Query 어노테이션을 사용할 때 InvalidDataAccessApiUsage exception이 발생하는 경우가 있습니다. org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations 이 경우는 @Modifying 어노테이션을 추가해주면 해결됩니다. insert, update, delete 쿼리의 경우 붙여주어야 합니다. @Repository public interface UserRepository extends JpaRepository { @Query("delete ..