개발지/Today I learn (52) 썸네일형 리스트형 [0831] 자바 스트림 (스트림 파이프라인 - 3. 스트림의 최종 연산) #최종 연산 - 대표적으로 forEach() 메서드 - 최종 연산 메서드가 사용되면 해당 스트림은 닫히고 모든 연산이 종료된다. - 기본 집계 ( sum() , count() , average() , max() , min() ) ▪ 숫자와 관련된 기본적인 집계의 기능을 하는 최종 연산자 public class TerminallOperationExample { public static void main(String[] args) { int[] intArray = {1, 3, 5, 7, 9}; // 카운팅 long count = Arrays.stream(intArray).count(); System.out.println("배열의 요소 개수는 " + count); // 합계 long sum = Arrays.s.. [0830] 자바 스트림 (스트림 파이프라인 - 2. 스트림의 중간 연산) #스트림 파이프라인 - 2. 스트림의 중간 연산 - 중간 연산이란 생성한 스트림에서 데이터 소스를 가공하는 과정이다. - 중간 연산자들 중에 빈번하게 사용되는 것은 필터링, 매핑, 정렬 등이 있다. - 필터링( filter() , distinct() ) ▪ 조건에 맞는 데이터만 들어오도록 정제하는 역할의 중간 연산자 ▪ filter() : Stream에서 조건에 맞는 데이터를 정제하여 더 작은 컬렉션을 만든다. 조건은 람다식을 사용하여 정의한다. ▪ distinct() : Stream의 요소들에 중복된 데이터가 존재하는 경우, 중복을 제거한다. public class FilteringExample { public static void main(String[] args) throws Exception { .. [0830] 자바 스트림 (스트림 파이프라인 - 1. 스트림의 생성) #스트림 파이프라인 - 1. 스트림의 생성 - 배열 스트림 생성은 Arrays 클래스 stream() 또는 Sream 클래스의 of() 메서드를 사용한다. public class StreamCreator { public static void main(String[] args) { String[] arr = enw String[]{"대한민국", "일본", "중국"}; // 문자열 스트림 생성 (Arrays 클래스 메서드 사용) Stream stream1 = Arrays.stream(arr); // 문자열 스트림 생성 (Stream 클래스 메서드 사용) Stream stream2 = Stream.of(arr); stream1.forEach(System.out::println); stream2.forEach(.. [0829] 자바 스트림 #스트림 - 배열 및 컬렉션의 저장 요소를 하나씩 참조하여 람다식으로 처리할 수 있게 해주는 반복자. - 선언형 프로그래밍(Declarative Programming)과 명령형 프로그래밍(Imperative Programming) ▪ 선언형 프로그래밍이란 코드에서 '무엇'에 집중하는 코드 작성 방법론을 말한다. ▪ 명령형 프로그래밍이란 코드에서 '어떻게'에 집중하는 코드 작성 방법론을 말한다. ▪ 선언형 프로그래밍은 내부의 동작 원리를 모르더라도 코드의 역할을 직관적으로 볼 수 있다. - 스트림을 통해 선언형 프로그래밍이 가능하다. // 명령형 프로그래밍 public class ImperativeProgramming { public static void main(String[] args){ // List.. [0825] 자바 람다식 (메서드 레퍼런스) #메서드 참조 - 람다식에서 불필요한 매개변수를 제거할 때 사용한다. - 인터페이스의 추상 메서드의 매개변수와 리턴 타입에 따라 달라진다. - 메서드 참조는 정적 / 인스턴스 메서드와 생성자도 참조 가능하다. - 메서드 참조의 기본 형태는 다음과 같다. // 클래스이름 :: 메서드이름 // Math 클래스의 max() 정적 메서드를 참조 Math :: max // 메서드 참조 #정적 메서드와 인스턴스 메서드 참조 // 정적 메서드의 참조 클래스 이름 :: 메서드 // 인스턴스 메서드의 참조 (객체생성필요)참조 변수 :: 메서드 //Calculator.java public class Calculator { public static int staticMethod(int x, int y) { // 정적 메서드.. [0824-25] 자바 람다식(람다식, 함수형 인터페이스) #람다식 - 함수형 프로그래밍 기법을 지원하는 자바의 문법요소. - 메서드를 하나의 '식'으로 표현한 것. - 코드를 간결하고 명확하게 표현할 수 있다. - 객체지향 프로그래밍과 함수형 프로그래밍을 혼합하는 방식으로 더 효율적 프로그래밍 가능. - 람다식과 기존 메서드의 비교 // 기존 메서드 void sayhi() { System.out.println("HI"); } // 람다식 () -> System.out.println("HI"); - 람다식은 반환타입과 이름을 생략할 수 있어, 익명 함수(anonymous function)이라고도 부른다. - 람다식 예시 코드 int sum(int num1, int num2) { return num1 + num2; } (int num1, int num2) -> {.. [0823] 자바 애너테이션 (메타 애너테이션, 사용자 정의 애너테이션) #메타 애너테이션 - 애너테이션을 정의하는 데 사용되는 애너테이션 - 애너테이션의 적용 대상 및 유지 기간을 지정하는 데 사용됨. @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { } - @interface 상단 @Target 과 @Retention 애너테이션이 @override 의 적용 대상과 유지 기간을 지정한다. - 메타 애너테이션의 종류 (1) @Target - 애너테이션을 적용할 "대상"을 지정하는 데 사용 - 지정할 수 있는 대상의 타입은 아래와 같다. 대상 타입 적용 범위 ANNOTATION_TYPE 애너테이션 CONSTRUCTOR 생성자 FIELD 필드(멤버변수, 열거형 상수).. [0823] 자바 애너테이션 (표준 애너테이션) #애너테이션 - 소스 코드가 컴파일되거나 실행될 때 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해 주는 문법 요소 - 애너테이션의 사용 public interface ExampleInterface { void example(); } public class ExampleClass implements ExampleInterface { @Override // 애너테이션 public void example() { ... } } - 애너테이션의 종류 (1) 표준 애너테이션: JDK에 내장된 애너테이션 (2) 메타 애너테이션(사용자 정의 애너테이션): 다른 애너테이션을 정의할 때 사용하는 애너테이션 #표준 애너테이션 (1) @Override - 메서드 앞에만 붙일 수 있는 애너테이션. - 선언한 메서드가 상위.. [0816] 자바 컬렉션프레임워크 (Iterator, Set<E>, Map<K, V>) #Iterator - 컬렉션에 저장된 요소들을 순차적으로 읽어오는 역할 - Iterator는 Collection 인터페이스의 정의되어 있다. 메서드 설명 hasNext() 읽어올 객체가 남아 있으면 true 리턴, 없으면 false 리턴 next() 컬렉션에서 하나의 객체를 읽어옵니다. hasNext()가 선행되어야 한다. remove() next()를 통해 읽어온 객체를 삭제합니다. next() - 메서드 활용 예제 ArrayList list = ...; Iterator iterator = list.iterator(); while(iteraor.hasNext()) { // 읽어올 객체가 있으면 String str = iteratpr.next(); // next를 통해 다음 객체를 읽어온다. if(str.. [0810] 자바 컬렉션프레임워크 (List) #List - 배열과 같이 객체를 일렬로 늘어놓은 구조 - 인덱스로 객체를 관리. 저장된 객체에는 자동으로 인덱스 지정 - 인덱스로 객체를 검색, 추가, 삭제 가능 - List 인터페이스의 메서드 기능 리턴 타입 메서드 설명 객체 추가 void add(int index, Object element) 주어진 인덱스에 객체를 추가 boolean addAll(int index, Collection c) 주어진 인덱스에 컬렉션을 추가 Object set(int index, Object element) 주어진 위치에 객체를 저장 객체 검색 Object get(int index) 주어진 인덱스에 저장된 객체를 반환 int indexOf(object o) / lastIndexOf(object o) 순방향 / 역방향으.. 이전 1 2 3 4 5 6 다음