Java22 [Java] equals와 hashCode 함수 1. equals와 hashCode란?equals와 hashCode는 모든 Java 객체의 부모 객체인 Object 클래스에 정의되어 있다. 그렇기 때문에 Java의 모든 객체는 Object 클래스에 정의된 equals와 hashCode 함수를 상속받고 있다. [ equals()란? ]boolean equals(Object obj)로 정의된 equals 메소드는 기본적으로 2개의 객체가 동일한지 검사하기 위해 사용된다. equals가 구현된 방법은 2개의 객체가 참조하는 것이 동일한지를 확인하는 것이며, 이는 동일성(Identity)을 비교하는 것이다.즉, 2개의 객체가 가리키는 곳이 동일한 메모리 주소일 경우에만 동일한 객체가 된다.public boolean equals(Object obj) { .. 2023. 8. 23. [Java] Stream API의 활용 및 사용법 1. Stream 생성하기앞서 설명한대로 Stream API를 사용하기 위해서는 먼저 Stream을 생성해주어야 한다. 타입에 따라 Stream을 생성하는 방법이 다른데, 여기서는 Collection과 Array에 대해서 Stream을 생성하는 방법에 대해 알아보도록 하자. [Colleciton의 Stream 생성]Collection 인터페이스에는 stream()이 정의되어 있기 때문에, Collection 인터페이스를 구현한 객체들(List, Set 등)은 모두 이 메소드를 이용해 Stream을 생성할 수 있다. stream()을 사용하면 해당 Collection의 객체를 소스로 하는 Stream을 반환한다.//List로부터 스트림을 생성List list = Arrays.asList("a", "b",.. 2023. 8. 23. [Java] 람다식(Lambda Expression)과 함수형 인터페이스(Functional Interface) 람다식(Lambda Expression) 이란?Stream 연산들은 매개변수로 함수형 인터페이스(Functional Interface)를 받도록 되어 있다. 그리고 람다식은 반환 값으로 함수형 인터페이스를 반환하고 있다. 그렇기 때문에 우리는 Stream API를 정확히 이해하기 위해 람다식과 함수형 인터페이스에 대해 알고 있어야 한다. [람다식(Lambda Expression)]람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요없기 때문에, 람다식은 익명함수(Anonymous Function)의 한 종류라고 볼 수있다.익명함수(Anonymouns Function)란 함수의 이름이 없는 함수로, 익명함수들.. 2023. 8. 23. [Java] Stream API에 대한 이해 1. Stream API에 대한 이해 [Stream API에 대한 소개] Java는 객체지향 언어이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JDK8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java를 이용해 함수형으로 프로그래밍할 수 있는 API들을 제공해주고 있다. 그 중에서 Stream API는 데이터를 추상화하고, 처리하는데 자주 사용되는 함수들을 정의해두었다. 여기서 데이터를 추상화하였다는 것은 데이터의 종류에 상관 없이 같은 방식으로 데이터를 처리할 수 있다는 것을 의미하며, 그에 따라 재사용성을 높일 수 있다. 예를 들어 주어진 배열이나 리스트의 데이터를 정렬된 상태로 출력하고자 한다고 하자. Stream API를 사용하지 않은 경우 다음과 같이 .. 2023. 8. 23. 이전 1 2 3 4 다음