Programming100 [자바/Java] 스트림 Stream - 최종 연산 https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%EC%8A%A4%ED%8A%B8%EB%A6%BC-Stream-%EC%A4%91%EA%B0%84-%EC%97%B0%EC%82%B0 [자바/Java] 스트림 Stream - 중간 연산 https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%EC%8A%A4%ED%8A%B8%EB%A6%BC-Stream-%EC%83%9D%EC%84%B1 [자바/Java] 스트림 Stream - 생성 스트림 (Stream) 이란 자바8에서 등장한 스트림은 람다를 활용할 수 있는 개념 codingralro.tistory.com 저번 글에서는 중간 연산에 대해 공부하였다.. 2023. 10. 15. [자바/Java] 스트림 Stream - 중간 연산 https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%EC%8A%A4%ED%8A%B8%EB%A6%BC-Stream-%EC%83%9D%EC%84%B1 [자바/Java] 스트림 Stream - 생성 스트림 (Stream) 이란 자바8에서 등장한 스트림은 람다를 활용할 수 있는 개념 중 하나이다. 스트림은 '집합 자료의 연산'을 위해 사용하는 객체로서 스트림이 등장하기 이전에는 배열 또는 컬렉션 codingralro.tistory.com 저번 글에서는 자바에서 스트림 객체를 생성하는 법에 대해서 다루었다. 이번 글에서는 생성한 스트림 객체를 어떻게 가공하는지에 대한 과정을 공부해보겠다. 중간 연산 - Stream 가공하기 스트림은 데이터의 흐름이다. 코.. 2023. 10. 15. [자바/Java] 스트림 Stream - 생성 스트림 (Stream) 이란 자바8에서 등장한 스트림은 람다를 활용할 수 있는 개념 중 하나이다. 스트림은 '집합 자료의 연산'을 위해 사용하는 객체로서 스트림이 등장하기 이전에는 배열 또는 컬렉션 객체를 다루기 위해서 for 또는 forEach문을 돌면서 요소 하나씩을 꺼내서 다루었다. 간단한 경우라면, 이러한 방식은 크게 문제가 되지 않지만 로직이 복잡해질 수록 코드의 양이 많아지고 복잡해져 로직이 섞이게 되고, 메소드를 나눌 경우 루프를 여러번 도는 경우가 발생한다. 이러한 문제를 해결하고자 등장한 개념이 바로 스트림인 것이다. 스트림을 더 잘 이해하기 위해서는 단순히 집합 자료의 연산을 해주는 객체라는 것, 이전에 스트림이 데이터의 흐름이라는 것을 인지해야 한다. 스트림(Stream) = 데이터의.. 2023. 10. 15. [자바/Java] Optional 개념 및 사용법 Opional 이란 자바의 가장 큰 고질적인 문제라고 하면 null을 체크해줘야 하는 문제를 꼽을 수 있다. NPE(NullPointerException)을 피하기 위해서는 꼭 null 여부를 체크해줘야 하기 때문에 코드가 길어지고 복잡해진다는 문제점이 발생하는 것이다. 이러한 문제를 보완하고자 Java8에서는 Optional 클래스를 통해 NPE를 방지할 수 있도록 도와준다. Optional는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. Optional 클래스는 아래와 같은 value에 값을 저장하기 때문에 값이 null이더라도 바로 NPE가 발생하지 않으며, 클래스이기 때문에 각종 메소드를 제공해준다. class Optional { T .. 2023. 10. 15. [자바/Java] 메소드 레퍼런스(Method Reference) 메소드 레퍼런스(Method Reference)란 메소드 레퍼런스란, 람다식에서의 클래스의 메소드 호출을 간단하게 표현을 하는 방법이다. 람다 표현식이 메소드 호출 1회로 끝나는 경우, 메소드 레퍼런스를 이용하여 코드를 더욱 간결하게 작성할 수 있는 것이다. 예시로 아래의 코드를 보면, @FunctionalInterface public interface class Test { void print(T t); } public class Main { public static void main(String[] args) { //메소드 레퍼런스 X Test t1 = (str) -> System.out.println(str); t1.print("hello"); //메소드 레퍼런스 O Test t2 = System:.. 2023. 10. 14. [자바/Java] 함수형 인터페이스 함수형 인터페이스 이전 글인 lambda에서 함수형 인터페이스에 대해서 알아보았다. 하지만 매번 함수형 인터페이스를 직접 만들어서 사용하는 것을 번거로운 일이다. 그래서 Java에서는 기본적으로 많이 사용되는 함수형 인터페이스를 제공하고 있다. 기본적으로 제공되는 것만 사용하여도 대부분의 람다식을 사용할 수 있다. 함수형 인터페이스의 종류는 아래와 같다. Runnable : () -> void Supplier : () -> T Consumer : T -> void Function : T -> R Predicate : T -> boolean UnaryOperator : T -> T BinaryOperator : (T, T) -> T BiPredicate : (T, U) -> boolean BiConsume.. 2023. 10. 14. [자바/Java] lambda 개념 및 사용법 람다(lambda)란 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 뜻하는 말이다. 여기서 람다는 수학과기초 컴퓨터 과학 분야에서의 람다 대수에서 나온 용어로, 함수를 보다 단순하게 표현하는 방법을 뜻한다. Lambda = 프로그래밍적 동작을 보다 간단하게 표현한 이름 없는 함수 자바에서 람다 표현식(lambda-expression)은 Java8부터 도입된 개념이다. 람다 표현식은 추상 메소드가 하나뿐인 인터페이스를 구현하는 것이다. 그렇기 때문에 또 다른 말로, 함수형 인터페이스(functional interface)라고도 한다. 익명 함수라는 말에서 알 수 있듯이 익명 클래스를 더 간략화한 표현식(메소드 한개를 표현하기 위한 식)이라고 이해하면 더.. 2023. 10. 14. [자바/Java] Inner 클래스 Inner Class 란? Inner Class란, 클래스나 인터페이스 내부에서 선언되는 클래스를 이너 클래스라고 한다. 이너 클래스를 사용할 시 다음과 같은 이점을 가지고 있다. 이너 클래스는 외부 클래스의 모든 멤버(변수, 메소드 등)에 접급할 수 있다는 관련성의 특별한 타입을 나타냄 이너 클래스는 논리 그룹 클래스와 인터페이스 내부에 있기 때문에 더 읽기 쉽고, 유지 가능한 코드 개발에 사용 적시 적소에 쓰면 불필요한 클래스의 낭비가 줄어든다. (1번 사용되는 클래스를 위해, 클래스 파일을 생성할 필요X) 이너 클래스는, 클래스 내부에서 어디에, 어떻게 선언되냐에 따라 여러 종류로 나뉜다. Member Inner Class : 다른 클래스 내부에서 선언된 클래스 Static Ineer Class :.. 2023. 10. 14. [자바/Java] Collection2 - 사용예제 저번 글에서는 자바 Collection 의 개념에 대해서 다루었다. 이번 글에서는 자바 Collection에 속해있는 해당 클래스들의 사용 예제를 다루면서 Collection의 사용법에 대해서 다루겠다. https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-Collection1-%EA%B0%9C%EB%85%90 [자바/Java] Collection1 - 개념 컬렉션(collection)은 많은 데이터 요소를 효율적으로 관리하기 위한 자료구조를 말하며, ArrayList, LinkedList, HashMap 등이 여기에 포함된다. 그리고 이 컬렉션들은 제네릭(generics) 형식으로 구현되어 있 codingralro.tistory.com List I.. 2023. 10. 13. [자바/Java] Collection1 - 개념 컬렉션(collection)은 많은 데이터 요소를 효율적으로 관리하기 위한 자료구조를 말하며, ArrayList, LinkedList, HashMap 등이 여기에 포함된다. 그리고 이 컬렉션들은 제네릭(generics) 형식으로 구현되어 있기 때문에 generic에 대해서 잘 모른다면 아래 블로그를 참고하기 바란다. https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%EC%A0%9C%EB%84%A4%EB%A6%ADGeneric [자바/Java] 제네릭(Generic) 제네릭(Generic)이란 자바를 조금씩 알아가고 있는 사람에겐 제네릭이라는 키워드는 생소할 수 있다. 하지만, 이미 수없이 우리는 제네릭을 마주해왔음을 이번 글을 통해 알 수 있을.. 2023. 10. 13. [자바/Java] 제네릭(Generic) 제네릭(Generic)이란 자바를 조금씩 알아가고 있는 사람에겐 제네릭이라는 키워드는 생소할 수 있다. 하지만, 이미 수없이 우리는 제네릭을 마주해왔음을 이번 글을 통해 알 수 있을 것이다. 제네릭이란 데이터의 타입을 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 즉, 사용자에 의해 어떤 타입으로 지정이 되는 해당 클래스의 메소드는 동일한 기능을 하는 것이다. 이러한 제네릭이 적용된 클래스는 익히 알고 있는 ArrayList, LinkedList 등이 있다. 예를 들어, ArrayList를 통해 특정 타입의 배열을 생성하고 싶을 때 다음과 같이 생성을 한다. // Integer 배열 ArrayList intList = new ArrayList(); // String .. 2023. 10. 12. [자바/Java] Wrapper 클래스 Wrapper클래스란 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어진다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, String등이 있는데 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 생긴다. 이 때에 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. 자바는 모든 기본타입(primitive type)에 대해 객체를 생성할 수 있는 Wrapper 클래스가 있다. 이런 객체를 포장 객체라고도 하는데 그 이유는 기본 타입의 값을 내부에 두고 포장하기 때문입.. 2023. 10. 12. 이전 1 ··· 3 4 5 6 7 8 9 다음 728x90 반응형