전체 글
-
[JAVA] Optional 클래스 사용 방법Java/기타 2024. 10. 5. 08:21
목차 Java 8에서 도입된 Optional 클래스는 값이 있을 수도, 없을 수도 있는 상황을 표현하는 컨테이너 객체입니다. 이를 활용하면 null을 직접 다루는 대신 명시적으로 존재 여부를 처리할 수 있습니다. 이번 포스트에서는 Optional 클래스의 다양한 메서드를 활용한 테스트 예제를 살펴보겠습니다.주요 메서드Optional.ofNullable(T value) : 주어진 값이 null일 수 있는 경우 이 메서드를 사용하여 Optional 인스턴스를 생성할 수 있습니다. 값이 null인 경우 비어 있는 Optional을 반환합니다.Optional.orElse(T other) : Optional이 비어 있을 때 대체값을 반환합니다. 값이 존재하면 해당 값을 반환하고, 그렇지 않으면 제공한 대체값을 반..
-
[JAVA] Java 8 이전과 이후의 날짜 및 시간 비교 방법Java/기타 2024. 10. 4. 23:51
목차 Java 8은 날짜와 시간 API에 큰 변화를 가져왔습니다. Java 8 이전의 `Date`와 `Calendar` 클래스는 여러 단점이 있었으며 이를 보완하기 위해 Java 8에서는 `LocalDate`, `LocalTime`, `LocalDateTime` 같은 새로운 클래스가 도입되었습니다. 본 포스트에서는 Java 8 이전과 이후의 날짜 및 시간 비교 방법을 다양한 예제와 함께 살펴보겠습니다. Java 8 이후 클래스 LocalDate : 날짜를 나타내는 클래스입니다. 연도, 월, 일 정보를 포함하며, 시간 정보는 포함하지 않습니다. LocalTime : 시간을 나타내는 클래스입니다. 시, 분, 초 정보를 포함하며, 날짜 정보는 포함하지 않습니다. LocalDateTime : 날짜와 시간을 모두..
-
[JAVA] 컬렉션 간의 변환 방법Java/Collection(컬렉션) 2024. 10. 4. 22:53
목차 자바 프로젝트를 진행하다 보면 배열, 리스트, 셋, 맵 등의 컬렉션 타입들을 상호 변환해야 하는 경우가 자주 발생합니다. 이번 문서에서는 이러한 변환 작업을 어떻게 수행할 수 있는지에 대해 다뤄보겠습니다. 1. 배열을 List로 변환하기배열을 List로 변환할 때 가장 간단한 방법은 Arrays.asList() 메서드를 사용하는 것입니다./** * 배열을 List로 변환 * * @param array 변환할 배열 * @param 배열의 원소 타입 * @return 변환된 List */public static List arrayToList(T[] array) { return Arrays.asList(array);}단위 테스트@DisplayName("arrayToList: Integer 배열을..
-
[JAVA] 맵 검색하기Java/Collection(컬렉션) 2024. 10. 4. 15:16
목차 자바에서는 맵을 검색하는 다양한 방법이 있습니다. 이번 문서에서는 맵을 검색하는 여러 가지 방법에 대해 설명하겠습니다. 주요 메서드로는 키가 포함되어 있는지 검사, 값이 포함되어 있는지 검사, 특정 키에 연관된 값을 가져오는 방법, 특정 값에 연관된 키를 가져오는 방법, 특정 조건에 맞는 엔트리를 찾는 방법이 있습니다.1. 키가 포함되어 있는지 확인맵에 특정 키가 포함되어 있는지 확인할 때, containsKey 메서드를 사용합니다./** * 주어진 맵에 특정 키가 포함되어 있는지 확인 * * @param map 키가 포함되어 있는지 확인할 맵 * @param key 확인할 키 * @param 키의 타입 * @param 값의 타입 * @return 맵이 특정 키를 포함하고 있으면 {@code t..
-
[JAVA] 리스트의 중복 요소 제거하기Java/Collection(컬렉션) 2024. 9. 27. 16:40
목차 자바에서는 리스트의 중복 요소를 제거하는 여러 가지 방법이 있습니다. List, HashSet, Stream API, TreeSet, 그리고 LinkedHashSet을 사용하는 방법이 있습니다. 각 방법에 대해 자세히 살펴보겠습니다. 1. List를 사용하여 중복 제거List를 사용하여 중복을 제거하려면 우선 새로운 리스트를 만들고, 반복문을 사용하여 중복되는 요소가 없는지 확인하면서 요소를 추가해야 합니다.List를 사용하여 중복을 제거/** * 리스트에서 중복 요소를 제거 (List 사용) * * @param list 중복 요소를 제거할 리스트 * @param 리스트 요소의 타입 * @return 중복이 제거된 리스트 */public List removeDuplicatesUsingList(L..
-
[JAVA] 리스트 회전하기Java/Collection(컬렉션) 2024. 9. 27. 16:08
목차 자바에서는 리스트를 회전시키는 다양한 방법들이 있습니다. 이 문서에서는 `Collections.rotate()` 메서드, 전통적인 for 문, Stream API, 헬퍼 메서드를 사용하는 방법을 살펴보겠습니다.1. Collections.rotate() 메서드를 사용하여 리스트를 회전Collections.rotate() 메서드를 사용하면 간편하게 리스트를 회전시킬 수 있습니다.Collections.rotate() 메서드를 사용한 방법/** * Collections.rotate() 메서드를 사용하여 리스트를 회전 * * @param list 회전할 리스트 * @param k 회전할 위치 수 * @return 회전된 리스트 */public List rotateWithCollections(List ..
-
[JAVA] 리스트의 합 구하기Java/Collection(컬렉션) 2024. 9. 27. 15:48
목차 자바에서는 리스트의 합을 구하는 여러 가지 방법이 있습니다. 전통적인 for 문, 향상된 for 문, Stream API, 재귀 호출, 그리고 병렬 스트림을 사용하는 방법이 있습니다. 1. 전통적인 for 문를 사용한 합 구하기전통적인 for 문를 사용하여 리스트의 합을 구하는 방법은 직관적이고 간단합니다.for 문를 사용한 방법/** * 리스트의 합을 전통적인 for 문을 사용 * * @param list 합을 구할 리스트 * @return 리스트 요소들의 합 */public int sumUsingForLoop(List list) { int sum = 0; for (int i = 0; i 단위 테스트@DisplayName("sumUsingForLoop: 리스트 요소들의 합")@Testpubli..
-
[JAVA] 리스트 검색하기Java/Collection(컬렉션) 2024. 9. 27. 15:14
목차 자바에서는 리스트를 검색하는 다양한 방법이 있습니다. 이번 문서에서는 리스트를 검색하는 여러 가지 방법에 대해 설명하겠습니다. 주요 메서드로는 순차 검색, 이진 검색, 라이브러리 메서드를 사용한 검색, 특정 값의 모든 인덱스를 찾는 방법, 최대값 및 최소값을 찾는 방법, 최빈값(가장 빈번하게 나타나는 값)을 찾는 방법, 그리고 리스트에서 중복값을 찾는 방법이 있습니다. 1. 순차 검색순차 검색을 사용하여 리스트에서 특정 값을 찾는 방법입니다. 리스트의 첫 번째 요소부터 시작하여 찾아야 하는 값을 순차적으로 비교합니다./** * 순차 검색을 사용하여 리스트에서 특정 값을 찾음 * * @param list 검색할 리스트 * @param value 검색할 값 * @return 리스트에서 값의 인덱스 (..
-
[JAVA] 리스트 정렬하기 : 오름차순, 내림차순, 병렬 정렬Java/Collection(컬렉션) 2024. 9. 27. 14:43
목차 자바에서는 리스트를 정렬하는 다양한 방법이 있습니다. 이번 문서에서는 ListSort 클래스의 메서드를 사용하여 리스트를 오름차순 및 내림차순으로 정렬하는 방법을 기본과 병렬 방식으로 구분하여 설명하겠습니다. 1. 리스트를 Collections.sort 메서드를 사용하여 오름차순 정렬Collections.sort 메서드를 사용하여 정수 리스트를 오름차순으로 정렬합니다./** * Collections.sort 메소드를 사용하여 리스트를 오름차순으로 정렬 * * @param list 정렬할 리스트 * @param 정렬할 리스트의 타입 * @return 정렬된 리스트 */public > List listSortAscending(List list) { Collections.sort(list); ret..
-
[Java] MapStruct를 활용한 객체 변환Java/기타 2024. 9. 21. 07:19
mapstruct 라이브러리는 Java Bean 매핑을 간편하게 수행할 수 있도록 도와주는 애너테이션 기반의 코드 생성 라이브러리입니다. 이번 포스트에서는 Flattening과 Projection을 통해 MapStruct의 사용법을 알아보겠습니다. 1. 라이브러리 추가Gradle 설정dependencies { // Lombok - MapStruct보다 먼저 정의 compileOnly 'org.projectlombok:lombok:1.18.34' annotationProcessor 'org.projectlombok:lombok:1.18.34' testCompileOnly 'org.projectlombok:lombok:1.18.34' testAnnotationProcessor 'o..