如何遍历类的数组列表 import java.util.ArrayList; 公共类电路员{ 公共静态void展示中心(圆圈2){ System.out.println(circle.getName()+“'s”+circle.getCenter()); } 公共静态void main(字符串[]args){ ArrayList圆圈=新的ArrayList(); 添加(新的圆圈2(3,5,4)); 添加(新的圆圈2(4,2,5)); 添加(新气缸2(5,2,3,5)); 添加(新气缸2(3,4,7,6)); 添加(新的卵形2(6,5,7,3)); 添加(新的卵形2(4,2,3,1)); 添加(新的椭圆柱体2(2,3,4,5,6)); 添加(新的椭圆柱2(3,3,5,4,7)); 用于(圆圈2 i:圆圈){ 展览中心(一);; } } }
我有四个独立的类:Circle2、Cylinder2、Oval2和OvalCylinder2。它们都是从圆环2和椭圆柱面2衍生出来的。我试图将它们放入一个数组列表中,然后遍历数组列表并通过showCenter函数运行每个实例,该函数将调用两个getter(getName和getCenter)来告诉您类的名称(圆形、圆柱体、椭圆形和椭圆形圆柱),以及它的中心位置(x,y)。但是,在for循环中,我得到一个错误: “circleTester类型的方法圆(Circle2)未定义” 如何解决此问题?使用如何遍历类的数组列表 import java.util.ArrayList; 公共类电路员{ 公共静态void展示中心(圆圈2){ System.out.println(circle.getName()+“'s”+circle.getCenter()); } 公共静态void main(字符串[]args){ ArrayList圆圈=新的ArrayList(); 添加(新的圆圈2(3,5,4)); 添加(新的圆圈2(4,2,5)); 添加(新气缸2(5,2,3,5)); 添加(新气缸2(3,4,7,6)); 添加(新的卵形2(6,5,7,3)); 添加(新的卵形2(4,2,3,1)); 添加(新的椭圆柱体2(2,3,4,5,6)); 添加(新的椭圆柱2(3,3,5,4,7)); 用于(圆圈2 i:圆圈){ 展览中心(一);; } } },java,oop,foreach,polymorphism,java-8,Java,Oop,Foreach,Polymorphism,Java 8,我有四个独立的类:Circle2、Cylinder2、Oval2和OvalCylinder2。它们都是从圆环2和椭圆柱面2衍生出来的。我试图将它们放入一个数组列表中,然后遍历数组列表并通过showCenter函数运行每个实例,该函数将调用两个getter(getName和getCenter)来告诉您类的名称(圆形、圆柱体、椭圆形和椭圆形圆柱),以及它的中心位置(x,y)。但是,在for循环中,我得到一个错误: “circleTester类型的方法圆(Circle2)未定义” 如何解决此问题?使用
showCenter(I)
而不是showCenter(circles(I))
,因为I
已经是Circle2
类型的对象
import java.util.ArrayList;
public class circleTester {
public static void showCenter(Circle2 circle) {
System.out.println(circle.getName() + "'s " + circle.getCenter());
}
public static void main (String []args) {
ArrayList<Circle2> circles = new ArrayList<Circle2>();
circles.add(new Circle2(3, 5, 4));
circles.add(new Circle2(4, 2, 5));
circles.add(new Cylinder2(5, 2, 3, 5));
circles.add(new Cylinder2(3, 4, 7, 6));
circles.add(new Oval2(6, 5, 7, 3));
circles.add(new Oval2(4, 2, 3, 1));
circles.add(new OvalCylinder2(2, 3, 4, 5, 6));
circles.add(new OvalCylinder2(3, 3, 5, 4, 7));
for (Circle2 i : circles) {
showCenter(circles(i));
}
}
}
使用showCenter(i)
而不是showCenter(圆圈(i))
因为i
已经是Circle2
类型的对象
import java.util.ArrayList;
public class circleTester {
public static void showCenter(Circle2 circle) {
System.out.println(circle.getName() + "'s " + circle.getCenter());
}
public static void main (String []args) {
ArrayList<Circle2> circles = new ArrayList<Circle2>();
circles.add(new Circle2(3, 5, 4));
circles.add(new Circle2(4, 2, 5));
circles.add(new Cylinder2(5, 2, 3, 5));
circles.add(new Cylinder2(3, 4, 7, 6));
circles.add(new Oval2(6, 5, 7, 3));
circles.add(new Oval2(4, 2, 3, 1));
circles.add(new OvalCylinder2(2, 3, 4, 5, 6));
circles.add(new OvalCylinder2(3, 3, 5, 4, 7));
for (Circle2 i : circles) {
showCenter(circles(i));
}
}
}
foreach循环语法为:
for (Circle2 circle : circles) {
showCenter(circle);
}
其内容为“集合中的每个T元素”。在您的情况下,i
已具有Circle2
的类型,并且可以直接传递到showCenter
方法
for (T element : collection) {
...
}
如果要使用索引来迭代列表,请执行以下操作:
for (Circle2 circle : circles) {
showCenter(circle);
}
你可以把它和表达结合起来
如果您使用的是java8+,则最新版本更可取。foreach循环语法为:
for (Circle2 circle : circles) {
showCenter(circle);
}
其内容为“集合中的每个T元素”。在您的情况下,i
已具有Circle2
的类型,并且可以直接传递到showCenter
方法
for (T element : collection) {
...
}
如果要使用索引来迭代列表,请执行以下操作:
for (Circle2 circle : circles) {
showCenter(circle);
}
你可以把它和表达结合起来
如果您使用的是java8+的可能副本,则最新版本可能更可取