java 3

equals와 hashCode

내가 만든 객체로 List를 만들었는데 List 내에 중복되는 객체가 있다면 제거하고 싶다고 가정해보자.List peopleList = new ArrayList();people.add(new Person("loopy"))people.add(new Person("loopy"))Set peopleSet = new HashSet(people);if(peopleList.size() != peopleSet.size()) { throw new IllegalArgumentException();} 이 코드를 진행했는데 Exception이 발생하지 않고 다음 코드로 넘어간다. 왜일까?정답은 내가 만든 객체에서 equals와 hashCode 메소드를 재정의(override)하지 않았기 때문이다.  equals와 ha..

Java 2024.10.25

스트림(1) - Stream API 개요

스트림이란?데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소 스트림은 함수형 프로그래밍 언어와 데이터베이스에서 일반적으로 지원하는 연산을 지원한다. 예를 들어 filter, map, find, match, sort 등으로 데이터를 조작할 수 있다. 스트림 연산은 순차적으로 또는 병렬로 실행할 수 있다.  예시를 보자.menu.stream() .filter(dish -> dish.getCalories() > 300) .map(Dish::getName) .limit(3) .collect(toList());  1. 데이터 소스 menu는 연속된 요소를 스트림에 제공한다.2. stream()을 통해 스트림을 얻고3. 데이터 처리 연산(filter, map, limit, collec..

Java 2024.10.23

람다, 메소드 참조 활용하기

https://poloopy.tistory.com/50 람다 표현식람다 표현식은 메소드로 전달할 수 있는 익명 함수를 단순화한 것이다. 특징익명보통의 메소드와 달리 이름이 없다.함수메소드처럼 특정 클래스에 종속되지 않아 함수라고 부른다.전달람다 표poloopy.tistory.comhttps://poloopy.tistory.com/51 메소드 참조메소드 참조는 람다 표현식을 더 간결하게 작성할 수 있는 기능이다.람다 표현식이 단순 기존 메소드를 호출하는 경우 사용할 수 있다. 메소드 참조의 기본 구조 클래스 또는 객체 이름이중 콜poloopy.tistory.com 람다와 메소드 참조에 대해 이론적으로 익혔다면 어떤식으로 활용할지 알아보자.좋은 예시로 List API의 sort() 메소드가 있다. sort ..

Java 2024.10.21