저는이 책에서 연습 문제를 해결하려고합니다. Java로 처음으로 객체 : BlueJ를 사용한 실용적인 소개.임계 값 이하인 동물의 합계를 인쇄하십시오.
운동은 다음과 같이 진행됩니다
운동 5.17이 스트림을 사용하는 프로젝트에서 printEndangered 방법을 다시 작성합니다.
원래의 코드는 다음과 같습니다
public void printEndangered(ArrayList<String> animalNames, int dangerThreshold)
{
for(String animal : animalNames) {
if(getCount(animal) <= dangerThreshold) {
System.out.println(animal + " is endangered.");
}
}
}
내 시도는 다음과 같습니다
sightings.stream()
.filter(s -> animalNames.equals(s.getAnimal()))
.filter(s -> s.getCount() <= dangerThreshold)
.mapToInt(s -> s.getCount())
.forEach(s -> System.out.println(s));
'sightings'이란 무엇이며 원래 코드와 어떤 관련이 있습니까? – Eran
Sightings은 Sighting 클래스의 객체로서 관찰을 포함하는 ArrayList입니다. 어느 것이 만들어진 다른 목격의 정보를 보유하고 있습니다. 프로젝트 파일은 https://www.bluej.org/objects-first/resources/projects.zip에서 다운로드 할 수 있습니다. 5 장 : 동물 모니터링 -v1 – Soer7022
getCount의 기능은 무엇입니까? 그리고이 줄은 이상하다 :'.filter (s -> animalNames.equals (s.getAnimal()))'. arraylist와 동물의 물건을 비교하고 있습니까? –