【问题标题】:How to get specific values of objects inside an arraylist of the objects如何在对象的arraylist中获取对象的特定值
【发布时间】:2020-02-14 00:06:50
【问题描述】:

我创建了Shapes 的ArrayList,这是我创建的一个类。 ArrayList 包含不同种类的形状。我还创建了一些其他形状的类(圆形、矩形等)。

我使用了扫描仪,因此用户可以键入他选择的形状的宽度、高度等,并保存在包含他创建的所有形状的数组列表中。

例如,我如何获得所有形状的宽度?我找到了 hashMaps 的解决方案,但有没有更简单的解决方案?

我需要对它们进行算术运算。

【问题讨论】:

  • 向我们展示您对 ArrayLists 的尝试
  • 请出示您的代码 :)
  • 听起来你想做一个for-each循环并在列表中的每个Shape实例上调用.getWidth()
  • @Janus Varmarken Shape 是其他形状(圆形、矩形等)的父类。我不能在那里创建一个 getWidth 方法,我应该使用 getWidth 方法为所有类创建一个接口吗?我也无法在 Shape 类中创建宽度的实例,因为并非所有形状都有它(在 Circle 类中我不使用宽度,我使用半径,所以这样做是不正确的
  • @Janus Varmarken 我通过在 Shape 类中创建一个新方法作为抽象实例并在其他类中实现它来解决它。

标签: java arraylist


【解决方案1】:

在 Java 8 中,您可以使用流

int allShapeWidths = list.stream().mapToInt(Shape::getWidth).sum();

假设 Shape 中有 getWidth() 方法(Shape 是接口吗?)

【讨论】:

  • no Shape 是其他形状(圆形、矩形等)的父类。我不能在那里创建一个getWidth方法,我应该用getWidth方法为所有类创建一个接口吗?
  • 我也无法在 Shape 类中创建宽度实例,因为并非所有形状都有它(在 Circle 类中我不使用宽度,所以这样做是不正确的)
  • 我通过在 Shape 类中创建一个新方法作为抽象实例并在其他类中实现它来解决它。
猜你喜欢
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
相关资源
最近更新 更多