我对Java比较陌生。我想创建一个外部类的arraylist,并且对于arraylist的外部类的每个索引,我想要一个内部类的arraylist。
public Outerclass{
//Code Here
public InnerClass{
//Code Here
}
}
//My attempt at setting up the arrays
public ArrayList <Outerclass> olist;
public ArrayList <InnerClass> ilist;
olist= new ArrayList<Outerclass>();
for (int i = 0; i < 3; i++) {
Outerclass c = new Outerclass ();
ilist = new ArrayList<InnerClass>();
for(int j = 0 ; j < 4; j++){
InnerClass e = new InnerClass();
ilist.add(e);
}
olist.add(c);
}这样行得通吗?
发布于 2016-09-29 03:35:50
如果您有用于数据存储的嵌套类,则对答案#2稍加改进,意味着您有一个外部类的构造函数,该构造函数自动为内部类生成数量可变的数组成员,如树结构。这个解决方案实际上是一种变通方法,它使用一个已定义的成员- ArrayList -它可以在以后扩展,而不是在OuterClass中直接定义InnerClass[]数组,如果它不是静态的,就不会工作。
public class OuterClass
{
private int NumberInnerClassInstances;
// ... other members of OuterClass
ArrayList<InnerClass> innerClassInstances = new ArrayList<>();
OuterClass( input vars ...) {
// calculate the NumberInnerClassInstances needed
for(int i = 0 ; j < NumberInnerClassInstances; i++) {
OuterClass.InnerClass in = this.new InnerClass(i);
innerClassInstances.add(in);
}
}
public class InnerClass
{
int icvar;
InnerClass(int i) {
//...construct the Inner Class Member #i
// can access the members of OuterClass
}
}
}然后,您可以从外部使用get访问InnerClass实例:
oc = new OuterClass( vars ...)
var = oc.InnerClassInstances.get(i).icvarhttps://stackoverflow.com/questions/18048808
复制相似问题