【发布时间】:2018-10-21 07:41:33
【问题描述】:
我有一个 ArrayList,我想在列表中的前两个对象上调用两个方法,在其余对象上调用不同的方法,我怎样才能最简单地做到这一点?
到目前为止我有这个
ArrayList<Material> materials = new ArrayList();
StyklisteMetodeKlasse.fillArray(materials);
for(Material materialer: materials.subList(0, 1)){
int brugerInput = 0; // this is only a temporary varible
materialer.setAmount(Material.calculatePlanks(brugerInput, materialer.getLength()));
materialer.setAmount(Material.calculatePlanks(brugerInput, materialer.getLength()));
//here is some code where i call different methods on the rest of the materials
当我在“materialer”上调用一个方法时,它是适用于所有对象还是仅适用于第一个对象,然后是第二个对象?
【问题讨论】:
-
materials.subList(0, 1)给你一个只有第一个元素的子列表。因此,在这种情况下,您只需为第一个元素调用setAmount。但是,如果将其更改为subList(0, 2),则前两个元素将调用setAmount。 -
是否总是只是要调用方法
A()的列表中的前两个元素,以及要调用方法B()的其余元素开,没有任何额外的标准?如果是这样,为什么不直接拆分列表? -
好的,所以我应该将 subList 更改为然而元素,该方法应该被称为一个?我宁愿使用非增强的 for 循环,但我无法获取对象......有没有我可以实现的 pther 设计模式?
-
您“更愿意使用非增强的 for 循环”,为什么?是什么让您认为您无法使用它获取对象?
-
@user991710 所以我有一个“材料”的ArrayList,我需要计算一定长度所需的数量,但每种材料使用的方法不同,所以我认为会更容易只使用一个列表和列表的子列表,然后调用每个方法?