Java管道和过滤器模式问题

标签 java object

我有一个List<Animals>

public class Animals{
    int legs; 
    int age;
    int eyes;
//getters , setters 
}

我想以列表上的任意组合执行不同的操作。例如。计算平均值、计算中位数、计算两个字段的中间值等等。

在我想计算 median 的特定情况下基于 Animal legs 的中间值和Animal age ,这是怎么做到的?

我首先必须循环遍历数组列表并执行 (legs+age)/2 以获得中间值。然后,我会将这些值输入到下一个计算平均值的操作中。所以我的问题是,我在哪里存储第一个操作中执行的数据,以便将其传递给第二个操作?是否可以动态扩展 Animal 对象以包含新字段?我当时想我可以创建一个临时数组并存储结果,但这样我就会丢失有关动物的信息,并且也不会进行映射。

(我知道如何计算平均值/中位数等,只是想知道如何解决这个问题以正确解析数据)

最佳答案

您可以扩展 Animals对于仅适用于 Animals 的方法字段来计算动物的中间值(优点:你的操作有一个有意义的名称。缺点:你的类(class)规模扩大)或创建一个(临时)Map<Animals, Double>Animals到中间值,然后遍历 map 来计算平均值(优点:你的类的大小不会增长,相反:你的操作有一个有意义的名称)。

关于Java管道和过滤器模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866647/

相关文章:

c++ - C++中对象的赋值

python - (Python) 当我在类定义之后调用方法对象时,为什么它不执行?

java - 未报告的异常 ParseException;必须被捕获或声明被抛出——JAVA错误

java - Selenium 无法连接到 Mac 上的 ChromeDriver 75

java - Quartz Scheduler创建没有quartz.properties的schedulerFactoryBean Bean

java - 将多个对象写入和读取到文件

php - 对象到字符串,PHP 中的唯一键

java - 使用来自不同类的 Java 枚举?

查询用户数据时,Java ResultSet 已关闭异常

javascript - 仅使用 ES5、多个 Object.key 和 .map 导航多维对象以匹配 key