람다식 (Lambda expression) 과 함수형 인터페이스
·
Java
자바로 알고리즘 문제를 풀다가 특정 코드에 함수형 프로그래밍을 적용하고 싶어, 스트림을 공부하고자 했다. 그런데 스트림에서는 자바스크립트의 ES6 의 화살표 함수와 비슷한 개념인 람다식을 주로 사용한다는 것을 알고, 람다식 또한 공부하게 되었다. 그리고 막상 공부해보니, 함수형 인터페이스 기반으로 구조가 이해하기 쉽게 되어있어 자바의 설계에 대해 감탄하는 계기가 된듯하다. 람다식을 공부하면서 정리한 내용을 공유하고자 한다. 해당 포스트는 자바의 정석 14장 - 람다식의 내용을 정리했습니다. 람다식 (Lambda expression) 람다식 (Lambda expression) 은 메서드를 하나의 식 (expression) 으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로..
제네릭스 (Generics) 와 리스트 구현
·
Java
제네릭스 관련 내용 대부분은 자바의 정석 15장 입출력 내용을 정리하였습니다. 제네릭스 (Generics) 제네릭스 (Generics) 는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크 (compile-time type check) 를 해주는 기능이다. 제네릭스를 왜쓸까? 객체의 타입을 컴파일 시에 체크하기 때문에, 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 다시 말하면 객체를 저장할 때는 타입 안정성을 높여 의도하지 않은 타입의 객체가 저장되는 것을 막고, 객체를 불러올 때는 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다. 제네릭스의 장점 컴파일 시에 객체 타입 체크로 타입 안정성을 제공한다. 타입 체크와 형변환을 생략할 수..
알고리즘 문제풀이에서 사용하는 자바 입출력
·
Java
알고리즘 문제풀이는 항상 파이썬과 함께 풀다보니 막상 자바로 알고리즘 문제풀이에 접근할 때 입출력하는 방법을 몰랐다! 이번 기회에 자바 입출력 시에 java.io 패키지의 어떤 객체와 메서드가 사용되는지 공부해보고, 가장 사용하기에 적절한 방법을 찾아보았다. 먼저 자바 입출력에 어떤 객체와 메서드가 사용되는지 알아보자. (스트림 관련 내용 대부분은 자바의 정석 15장 입출력 내용을 정리하였습니다.) 자바 입출력 I/O 란 Input 과 Output, 즉 입출력을 말한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고 받는 것을 말한다. 스캐너 (Scanner) 스캐너 클래스의 객체를 생성하고 메서드를 호출하여 입력을 문자열, 정수형 등의 변수에 할당할 수 있다. nextLine()..