목록JAVA (11)
빙응의 공부 블로그
JAVA의 Record에 대해 알아보자!!📝Record란 무엇일까요?레코드(Record)는 Java 14에서 미리 보기 기능으로 도입되었고, JAVA 16에서 정식으로 도입된 새로운 데이터 클래스입니다. 레코드는 간결하고 불변한 데이터 구조를 정의하는 데 사용되며, 주로 데이터 전송 객체(DTO)나 간단한 데이터 모델 정의에 유용합니다. 기본 주요 개념불변성 : 레코드의 필드는 기본적으로 final이며, 한 번 생성된 레코드는 변경할 수 없습니다.자동 생성 : 레코드를 정의하면 여러 메서드가 자동 생성됩니다.equals(), hashCode(), toString(), Getter레코드 정의 레코드는 record 키워드를 사용하여 정의됩니다.public record Person(String name, i..
📝 개요자바에서 문자열하면 String을 사용하는 것이 일반적이다.그러나 더 간단하고 성능적으로 좋은 방법이 있다. 이것이 바로 StringBuilder이다 📝 StringBuilder StringBuilder는 문자열을 효율적으로 수정할 수 있는 클래스로, 가변적인 문자열 작업을 지원한다. 또한 String처럼 변경시 추가 메모리 할당이 아닌 직접 수정하므로 성능이 좋다. 🚩 생성 및 초기화StringBuilder sb = new StringBuilder(); // 빈 StringBuilder 생성StringBuilder sb = new StringBuilder("initial"); // 초기 값을 가진 StringBuilder 생성 🚩 문자열 추가sb.append("Hello"); // 문자열..
📝개요나는 보통 코딩테스트를 연습할 때 Scanner를 사용하였다. 그런데 Buffered와 StringTokenizer을 통해 더 빠르게 할 수 있다고 한다. 🚩Scanner란?Scanner 클래스는 기본 데이터 타입과 문자열을 구문 분석할 수 있는 클래스를 말한다.예를 들면 숫자나 문자열 등을 분석해준다.🚩 BufferedReader를 사용하는 이유는?코딩테스트는 시간제한이 존재한다. Scanner는 BufferedReader보다 느리기에 코딩테스트에서 사용하지 않는다. 🚩BufferedReader가 빠른이유Scanner는 입력 즉시, 프로그램에 전송 되고,BufferdReader는 Reader 클래스의 하위 클래스이며,Buffer를 사용해서 입력을 받기 때문에 더 빠르다. 📝Buffere..

📝FlatMap을 통한 중첩 구조 제거 FlatMap은 스트림의 각 요소를 다른 스트림으로 매핑한 후에 이를 단일 스트림으로 평탄화하는 데 사용된다. 즉 데이터가 2중 배열 혹은 2중 리스트로 되어있는데 1차원으로 처리해야 하는 경우 사용한다. flatMap은 Function 함수형 인터페이스를 매개 변수로 받는다. // 중첩된 배열 Integer[][] nestedArray = { {1, 2, 3}, {4, 5}, {6, 7, 8} }; // 배열을 스트림으로 평탄화하고 리스트로 변환 List flatList = Stream.of(nestedArray) .flatMap(Arrays::stream) .collect(Collectors.toList()); // 중첩된 리스트 List nestedList =..
📝Stream의 사용 순서 Stream은 데이터를 처리하기 위해 다양한 연산들을 지원한다. 이 과정은 3가지로 나뉘어져 있다. Stream의 3단계 구조 생성하기 가공하기 결과 만들기 📝1단계 - 생성하기 Stream을 생성하는 단계이다. Stream은 재사용이 불가능하므로, 결과 만들기가 끝나면 다시 생성해 주어야한다. Stream 연산은 Stream 객체를 기준으로 수행하기 때문에 먼저 컬렉션, 배열을 통해 Stream 객체를 생성해주어야 한다. 결과 만들기를 통해 연산이 끝나면 Stream이 닫히기 때문에 다시 만들어줘야 한다. 밑의 코드처럼 .stream을 통해 변환이 가능하다. 컬렉션 스트림 변환 // List 생성 List list = Arrays.asList("A", "B", "C"); //..
📝람다식(Lambda Expression)이란? Stream 연산들은 매개변수로 함수형 인터페이스를 받도록 되어있다. 그리고 람다식은 반환값으로 함수형 인터페이스를 반환하고 있다. Stream API를 사용하기 위해서는 람다식과 함수형 인터페이스에 대해 정확히 이해해야 한다. 람다식의 의미 람다식이란 함수를 하나의 식으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수 중에 하나이다. 익명 함수의 특징 다른 객체들에게 적용 가능한 연산을 모두 지원한다. 함수를 값으로 사용할 수도 있으며, 파라미터로 전달 및 변수에 대입 하기와 같은 연산도 가능하다. //기존 방식 public String hello() { return "Hello World!"; } //..