Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印低于阈值的动物总数_Java_Lambda_Functional Programming_Java Stream_Bluej - Fatal编程技术网

Java 打印低于阈值的动物总数

Java 打印低于阈值的动物总数,java,lambda,functional-programming,java-stream,bluej,Java,Lambda,Functional Programming,Java Stream,Bluej,我试图解决书中的一个练习:使用Java的对象优先:使用BlueJ的实用介绍 演习内容如下: 练习5.17重写项目中的方法以使用流 原代码为: public void printEndangered(ArrayList<String> animalNames, int dangerThreshold) { for(String animal : animalNames) { if(getCount(animal) <= dangerThreshold) {

我试图解决书中的一个练习:使用Java的对象优先:使用BlueJ的实用介绍

演习内容如下:

练习5.17重写项目中的方法以使用流

原代码为:

public void printEndangered(ArrayList<String> animalNames, int dangerThreshold)
{
    for(String animal : animalNames) {
        if(getCount(animal) <= dangerThreshold) {
            System.out.println(animal + " is endangered.");
        }
    }
}
public void printAnimalNames(数组列表动物名,int-dangerThreshold)
{
用于(字符串动物:动物名称){
if(getCount(animal)animalNames.equals(s.getAnimal()))
.filter(s->s.getCount()s.getCount())
.forEach->System.out.println;
方法属于包含
的类,而不是
s

public void printEndangered(ArrayList<String> animalNames, int dangerThreshold) {
    animalNames.stream()
               .filter(animal -> getCount(animal) <= dangerThreshold)
               .map(animal -> animal + " is endangered.")
               .forEach(System.out::println);
}
public void printAnimalNames(数组列表动物名,int-dangerThreshold){
animalNames.stream()
.filter(animal->getCount(animal)animal+“濒危”)
.forEach(System.out::println);
}
方法属于包含
的类,而不是
s

public void printEndangered(ArrayList<String> animalNames, int dangerThreshold) {
    animalNames.stream()
               .filter(animal -> getCount(animal) <= dangerThreshold)
               .map(animal -> animal + " is endangered.")
               .forEach(System.out::println);
}
public void printAnimalNames(数组列表动物名,int-dangerThreshold){
animalNames.stream()
.filter(animal->getCount(animal)animal+“濒危”)
.forEach(System.out::println);
}
sightings.stream()
//.filter(s->animalNames.equals(s.getAnimal())--不是必需的
.filter->getCount s.getCount()--不需要
.forEach(s->System.out.println(s+“受到威胁”);
sightings.stream()
//.filter(s->animalNames.equals(s.getAnimal())--不是必需的
.filter->getCount s.getCount()--不需要
.forEach(s->System.out.println(s+“受到威胁”);

什么是
sightings
以及它与原始代码的关系如何?sightings是一个数组列表,其中包含作为类Sighting对象的sightings。它保存已进行的不同sightings的信息。您可以在此处下载项目文件:它来自第5章:Animal-monitoring-V1GetCount做什么e很奇怪:
.filter(s->animalNames.equals(s.getAnimal()))
。您正在将arraylist与和动物对象进行比较?什么是
观测
,它与原始代码的关系如何?观测是一个arraylist,其中包含作为类观测对象的观测。它保存已进行的不同观测的信息。您可以在此处下载项目文件:来自第5章:Animal-monitoring-V1 getCount做什么?这一行很奇怪:
.filter(s->animalNames.equals(s.getAnimal())
。您正在将arraylist与和动物对象进行比较?
getCount()
完全不同的签名?
getCount()
完全不同的签名?
sightings.stream()
//.filter(s -> animalNames.equals(s.getAnimal())) -- not required
.filter(s -> getCount(s) <= dangerThreshold)
//.mapToInt(s -> s.getCount()) -- not required
.forEach(s -> System.out.println(s + " is Endangered"));