728x90

JAVA 27

map() 과 flatMap() 의 차이

.map() .map()은 단일 스트림의 원소를 매핑시킨 후 매핑시킨 값을 다시 스트림으로 반환하는 중간 연산을 담당한다. 필터가 조건을 충족시키는 새로운 스트림을 생선한다면, Map은 각각의 아이템을 변경하여 새로운 컨텐츠를 생성하는 기능이다. List list = Arrays.asList( new Person(20,"kim"), new Person(21,"moon"), new Person(22,"sub"), new Person(23,"park") ); list.stream().map(Person::getName) .forEach(System.out::println); kim moon sub park .flatMap() flatMap() 은 여러개의 스트림을 한개의 스트림으로 합쳐준다. 복잡한 스트림을..

JAVA 2022.09.22

GSON 라이브러리에 대해(편리한 JSON 변환에 관해)

GSON 라이브러리란? Gson은 Java에서 Json을 파싱하고, 생성하기 위해 사용되는 구글에서 개발한 오픈소스입니다. Java Object를 Json 문자열로 변환할 수 있고, Json 문자열을 Java Object로 변환할 수 있습니다. Gson 라이브러리 추가하기 Maven 에 설정 추가 JSON 파싱에 사용할 json-simple 라이브러리를 추가하기 위해 pom.xml 파일에 아래와 같이 dependency를 추가합니다. com.google.code.gson gson 2.8.7 Object -> Json 변환하기 Student 클래스 public class Student { private int id; private String name; public Student(int id, String..

JAVA 2022.09.15

Java 엑셀 파일(Excel) 다운로드

개발을 진행하다 보면 고객의 요청으로 특정 데이터를 추출하여 엑셀 파일을 생성하여 다운로드 받는 기능을 만드는 일이 종종있습니다. 엑셀 파일 생성 후 다운로드의 경우 크게 어렵지 않으며 자바에서 셋팅을 어떻게 해주냐에 따라 폰트, 글자 크기, 글자 배치 등을 설정할 수 있습니다. 오늘은 간단한 방법으로 자바 엑셀파일 다운로드에 대해서 알아보겠습니다. 1. GET 방식의 API 생성 @GetMapping("/get/excel/users") public void excel(HttpServletRequest req, HttpServletResponse res) { try { // 엑셀 다운로드 함수 TestUtil.excelDownload(res); }catch(Exception e) { e.printStac..

JAVA 2022.09.05

JAVA stream filter 정리

Filter 스트림내 요소에 대해서 필터링하는 작업 준비하기 java stream을 사용하는데 아직 미숙한것 같아서 여러가지 예제를 사용해보며 연습해보자. sample data (Human) 번호 이름 가진돈 생일 1 jojae 2900 1991-02-26 2 haha 1000 2003-03-02 3 arabia 30000 2001-04-06 4 cici 150 1982-05-16 5 zzang 40000 1910-06-26 6 ssu 200000 2012-07-11 7 kuku 150 1991-02-27 public class Human { private Long idx; private String name; private Integer money; private LocalDate birth; } 기본..

JAVA 2022.09.01

HashMap 사용 방법 및 예제

HashMap은 Map의 일종으로 key와 value의 쌍으로 이루어진 데이터를 보관합니다. HashMap은 다음과 같은 특징이 있습니다. null key와 null value를 모두 허용합니다. 내부적으로 데이터에 접근할 때 동기화를 보장하지 않습니다. 데이터의 순서를 보장하지 않습니다. 중복된 key값을 허용하진 않지만, 중복된 값은 갖을 수 있습니다. HashMap은 다음과 같은 API들을 제공합니다. 예제를 통해 어떻게 사용하는지 알아보겠습니다. put() putAll() get() remove() clear() isEmpty() keySet() values() containsKey() containsValue() replace() put() put()은 인자로 key와 value를 받습니다. 전..

JAVA 2022.08.16

ZonedDateTime과 LocalDateTime의 차이

이해하기 쉬운 Java 예제를 사용하여 LocalDateTime 을 ZonedDateTime 으로 또는 그 반대로 변환하는 방법을 배웁니다. LocalDateTime 의 인스턴스는 ISO-8601 달력 시스템에서 표준 시간대가 없는 날짜-시간(나노초 정밀도까지)을 나타냅니다. LocalDateTime 인스턴스는 로컬 타임라인의 한 지점을 나타냅니다 . 오프셋이나 시간대와 같은 추가 정보 없이는 유니버설 타임라인에서 순간을 나타낼 수 없습니다. ZonedDateTime 인스턴스는 유니버설 타임라인의 순간을 나타냅니다 . 날짜, 시간 및 지역 정보의 조합입니다. 1. LocalDateTime -> ZonedDateTime LocalDateTime에서 ZonedDateTime으로 변환하려면 지역 날짜-시간에 ..

JAVA 2022.08.05

ArrayList 중복 값 개수 세기(부제: Map 자료구조)

반복문을 이용하여 HashMap 객체에 key(원소), value(중복 횟수) 형식으로 저장하고 출력하는 방법입니다. 예제 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; public class ArrayListDupCheck { public static void main(String[] args) { // ArrayList 준비 ArrayList list = new ArrayList(Arrays.asList("A", "B", "C", ..

JAVA 2022.07.11

다형성(Polymorphism)

다형성이라는 개념은 OOP에서 아주 중요한 개념이므로 모르면 OOP에 대해서 제대로 안다고 할 수 없는 개념입니다. 각 요소들이 여러 가지 자료형으로 표현될 수 있다는 것을 말하게 되는데, 반댓말로는 단형성이 있습니다. 한가지의 요소는 한가지의 형태로만 매칭된다는 것을 의미합니다. 여기 People이라는 클래스가 있습니다. 아주 간단하게 정의한 클래스죠. 그 안에는 printInfo라는 멤버메소드가 있군요. class People{ public void printInfo() { System.out.println("나는 사람입니다."); } } People 클래스에서 printInfo를 호출하게 되면 지가 사람이라는 군요. 그 밑에 Man과 Woman 클래스는 People클래스를 상속합니다. class M..

JAVA 2022.06.21

Optional.of 와 Optional.ofNullable 의 차이

of, ofNullable로 객체 감싸기 자바에서 제공하는 객체를 Optional 객체로 감싸기 위해서는 Optional 에서 제공하는 of 와 ofNullable 매서드를 사용합니다. 둘의 차이점은 of는 인자로서 null값을 받지 않는다는 것이고 ofNullable은 null값을 허용한다는 것입니다. @Test public void givenNonNull_whenCreatesNonNullable() { String name = "saelobi"; Optional opt = Optional.of(name); assertEquals("Optional[saelobi]", opt.toString()); } 아래 코드를 보시면 null값을 of 메서드의 입력으로 받을 시 NullPointerException을..

JAVA 2022.05.13

롬복(lombok) .. 그 기능에 관해서

Maven 설정 추가 org.projectlombok lombok 1.18.16 provided 플러그인 설치(intellij 기준, 설정 → 플러그인 → lombok 검색) 롬복에서 자주 쓰는 것들 @Getter @Setter -> 각각 getter, setter 추가 @Data -> 한번에 getter, setter 추가 @NoArgsConstructor 파라미터가 없는 기본 생성자를 생성 @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 생성 @RequiredArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 생성 @NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor ..

JAVA 2022.03.31
728x90