본문 바로가기

Back-End/Java18

스트림 다양한 데이터 소스(컬렉션, 배열)를 표준화(컬렉션 프레임웍: 서로 사용법 달랐음)된 방법으로 다룬다 선언형으로 데이터 소스를 처리한다 람다식으로 요소 처리 코드를 제공한다 Stream의 요소 처리 메서드들은 대부분 함수형 인터페이스 매개타입을 가진다 → 람다식 또는 메서드 참조를 이용해서 요소 처리 내용을 매개값으로 전달 가능하다 내부 반복자를 사용하므로 병렬 처리가 쉽다 개발자는 요소 처리 코드에만 집중하면 된다! 람다식으로 요소 처리 내용만 전달할 뿐, 반복은 컬렉션 내부에서 일어난다 외부 반복자: 개발자가 직접 컬렉션 요소를 반복해서 가져오는 코드 패턴 → index를 사용하는 for문, Iterator를 이용하는 while문 내부 반복자: 컬렉션 내부에서 요소들을 반복, 개발자가 요소당 처리할 .. 2022. 7. 17.
람다 람다식 함수(메서드)를 하나의 식으로 표현한 것으로, 람다식 도입으로 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 반환 타입과 이름이 지워지면서 익명 함수(이름이 없는 함수)라고 말한다. 장점 1. 코드 간결 2. 컬렉션 요소 필터링과 매핑 → 원하는 결과 쉽게 집계 3. 클래스와 객체 생성 없이 메서드 호출 가능 4. 메서드를 변수처럼 다룰 수 있다 형태 1. 익명 객체: 메서드에서 이름과 반환타입을 제거 2. 매개변수 선언부와 몸통 사이에 -> 추가 (매개변수) -> {실행 코드} 3. 런타임에 익명 구현 객체 생성 int max(int a, int b) { return a > b ? a : b; } (a, b) -> a > b ? a : b //매개변수가 한 개이고 매개변수 타입이 없으면 (.. 2022. 7. 16.
배열 문제 풀이 보호되어 있는 글 입니다. 2022. 7. 6.
[Java] 지네릭스, 열거형, 애너테이션 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다.  지네릭스 타입을 구체적으로 지정하는 것이 아니라, 추후에 지정할 수 있도록 일반화 해 둔다컴파일 시 타입 체크타입의 안정성을 제공하고, 형변환을 생략할 수 있으므로(무조건 명시한 타입일 테니까) 코드가 간결해짐클래스 변수(static)에는 타입 매개변수 사용 불가 : 공간을 공유하는 특성에 모순이 된다ArrayList foodList = new ArrayList();foodList.add(new Food());// foodList.add(new Animal()); // ErrorArraylist list = new Arraylist();list.add(10); // Integerlist.add("20"); // StringIntege.. 2022. 2. 21.
컬렉션 프레임웍 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 인터페이스 인터페이스 특징 Collection List 순서 유지 O, 중복 O 구현 클래스: ArrayList, LinkedList, Stack, Vector Set 순서 유지 X, 중복 X HashSet, TreeSet Map 키와 값의 쌍으로 이루어진 데이터 집합 순서 유지 X, 키: 중복 X, 값: 중복 O HashMap, TreeMap, Hagtabel, Poperties ※ Collection: 인터페이스, Collections: 클래스 ArrayList Object 배열을 이용해서 데이터를 순차적 저장 공간이 없으면 새로운 배열을 생성해서 복사한 후 저장 객체를 인덱스로 관리 반복문을 통해 요소 삭제 시, 빈 공간을 채우기.. 2021. 12. 30.
예외 처리(exception handling) Exception클래스: 최고 조상 Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생 - 컴파일러가 예외 처리 확인 'checked예외' RuntimeException클래스들: 프로그래머의 실수 - 컴파일러가 예외 처리 확인하지 않는 'unchecked예외' 1. 예외 처리하기 - try-catch문 try { // 예외 발생 가능성 있는 문장 // 예외 발생 위치 이후에 있는 try블럭의 문장은 수행되지 않는다 } catch (Exception e) { // Exception 발생할 경우, 이를 처리하기 위한 문장 } ArithmeticException: 산술연산과정에서 오류가 있을 경우 발생 - 정수는 0으로 나누는 것 금지, 실수는 허용 1.1 발생 원인 찾기 printSta.. 2021. 12. 26.