Java Stream API를 사용하는 방법을 알고 있습니까?
스트림 , 람다 , 메소드 핸들러 및 기타 기능적 자바에 대한 지식을 적용하십시오.
경험이 풍부한 프로그래머조차 생각할 수있는 몇 가지 작업도 있습니다. 그들 모두를 해결하십시오.
현재 25 개의 작업을 사용할 수 있습니다
복제 저장소 → 방법 구현 → 테스트 실행 → 실수 수정
구현 방법은 src 폴더의 클래스 tasks.StreamTasks 에 배치됩니다. 처음에는 표준 UnsupportedOperationException 예고로 스터브됩니다 (테스트는 이에 대해 알고 있습니다). 해당 라인을 솔루션으로 바꾸어야합니다. 스트림 흐름 또는 그와 관련된 것 (각 작업에 대한 설명 및 힌트가 제공됨)으로 구성됩니다.
스트림 작업에서 모든 조건 ( if - if-else , ...)에서 표준주기 ( for , while , do-while , 재귀)를 사용하는 것이 금지되어 있습니다. 이 프로젝트의 주요 목표는 실제로 기능적 접근 방식을 실제로 사용하는 방법을 가르쳐주는 것입니다. 순수한 기능적 패러다임에서 가능한 한 가지 제외는 로컬 변수를 선언하고 사용하는 것입니다.
이 프로젝트로 인해 초보자를 중심으로 부양 가족 도서관이 필요하지 않습니다 . 종속성을 추가하는 방법을 알고 있고 실제로 무엇에 대해 알고 있다면 수동으로 수행 할 수 있습니다 (그러나 모든 작업은 표준 Java 라이브러리 만 사용하여 해결할 수 있습니다).
주요 요구 사항은 11 버전의 JVM입니다.
tasks.StreamTasksMain 클래스에서 기본 메소드를 실행하거나 선호하는 IDE에서 스크립트 파일 test.(cmd|sh) .
Tests Checker에 대한 assert 단어를 활성화하려면 Flag -ea 필요합니다. 그렇지 않으면 모든 테스트가 제대로 실행되지 않습니다.
확인 프로그램은 모든 작업에 대한 테스트를 실행 한 다음 각 작업에 대한 판결을 작성합니다.
가능한 평결 :
null 참조를 확인하는 것을 잊었습니다. 평결로 모든 작업을 accepted 할 때까지 프로그램은 0이 아닌 출구 코드로 완료됩니다.
인수 example 로 점검 프로그램을 실행할 수 있습니다. 이를 위해서는 IDE에서 인수를 전달하거나 실행중인 스크립트의 끝까지 전달되는 example 를 추가하려면 : test.cmd example (Windows의 경우) 및 ./test.sh example (UNIX)
클래스 tasks.StreamTasksExample 에는 일부 구현 된 작업이 있으므로 example 모드에서 테스트됩니다.
구현이 정확하거나 최적의 방식으로 보장되지는 않습니다.)
src 폴더에서 tasks.solution.StreamTasksSolution 클래스에서 솔루션을 볼 수있는 것보다 작업을 해결하는 방법을 모르는 경우. 이 클래스는 답변을 확인하기위한 참조 솔루션으로 사용되므로 작업에 코드를 복사 할 수 있으며이 작업이 허용됩니다.
모든 작업을 완료 할 때까지 솔루션과의 상호 작용을 피하십시오 :)
이 프로젝트의 작업을 사용하여 다양한 과제를 수행 할 수도 있습니다. 예를 들어, 제한된 시간 에 수행 할 수있는 작업을 확인하거나 모든 작업을 해결하는 데 필요한 시간을 확인할 수 있습니다.
버전 0.1.0은 여기에서 사용할 수 있습니다
향후 계획 :
[ ] 작업 수를 100으로 상승시킵니다[~] 테스트 엔진에 더 많은 입력 생성기를 추가하십시오[✓] Map <?, ?> 유형의 경우[✓] List <List <?>> 유형 (및 모든 인클로저 레벨)[ ] 또 다른[ ] 테스트 엔진에 더 많은 입력 변형을 추가합니다 (수집 인 다른 매개 변수의 확장으로 Fe 컬렉션)[~] 새로운 작업 아이디어가 있습니다[ ] 주제별로 작업을 여러 클래스로 분할합니다