[英]Having more than one ArrayList
大家好,今天我正尝试在ArrayList中执行此操作,我知道这是可能的,但主要是给我一个例外。 现在,我想知道我做错了什么或做这件事的最佳方法是什么。 我试图拥有一个ArrayList,并且在ArrayList中有另一个,我给它一个变量。
import java.util.ArrayList;
import java.util.Collection;
public class Example3 {
public static void main(String[] args) {
ArrayList<ArrayList<Family>> smallFamily = new ArrayList<ArrayList<Family>>();
smallFamily.addAll((Collection<? extends ArrayList<Family>>) (new Family("John",89 )));
smallFamily.addAll((Collection<? extends ArrayList<Family>>) new Family ("Smith", 78)));
for(ArrayList<Family> s: smallFamily){
System.out.println(s);
}
}
现在贝娄是我的家庭班,在我的家庭中这就是价值观
public class Family {
public String Name;
public int weight;
public Family(String Name, int weight){
this.Name = Name;
this.weight = weight;
}
public String toString(){
return ("The name is " + this.Name + "The weight is: " + this.weight);
}
}}
当我编译并运行程序时抛出的异常是
Exception in thread "main" java.lang.ClassCastException: Examples.Family cannot be cast to java.util.Collection
at Examples.Example3.main(Example3.java:9)
现在我自己学习Java,没有人问我。 任何帮助将不胜感激。
您正在尝试将对象转换为集合。 这是行不通的。 相反,您需要这样做:
smallFamily.add(new ArrayList<Family>(1) {{add(new Family("", 0));}});
这将创建一个ArrayList
,在创建时将添加new Family("", 0)
。 然后,它将将此数组列表添加到smallFamily数组列表。
现在为什么在这里得到这条线
smallFamily.addAll((Collection<? extends ArrayList<Family>>) (new Family("John",89 )));
只是因为计算机无法理解您在做什么,所以它会为您投放。 或者你投下:)。 现在尝试将对象转换为集合不起作用。
而是您需要尝试一下
public class Example3 {
public static void main(String[] args) {
ArrayList<ArrayList<Family>> smallFamily = new ArrayList<ArrayList<Family>>();
smallFamily.add(new ArrayList<Family>(2222) {{add(new Family("smith ", 0));}});
smallFamily.add(new ArrayList<Family>(333) {{add(new Family("john ", 0));}});
for(ArrayList<Family> s: smallFamily){
System.out.println(s);
}
}
}
当您添加家庭班级时
public class Family {
public String Name;
public int weight;
public Family(String Name, int weight){
this.Name = Name;
this.weight = weight;
}
public String toString(){
return ("The name is " + this.Name + "The weight is: " + this.weight);
}
}
输出应为
[The name is smith The weight is: 0]
[The name is john The weight is: 0]
希望这就是您的预期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.