美好的一天,
通常,我会通过查看list.size()
打印List中的所有内容并将其分配给对象并打印对象值。以下是我的示例代码:
List ccUserList = new ArrayList(); // Here I declare a List
Collection ccGroupCol = new ArrayList(); // Here I declare a collection
CCuserBO bo = null;
ccUserList = getSummaryList();
for(int i = 0, i < ccUserList.size() , i++){
bo = ( CCUserBO ) ccUserList.get(i);
System.out.println(bo.userName);
}
我想问一下在Collection中打印内容的方法。 由于Collection没有.get()函数。
我在Collection中尝试的代码中的以下内容:
CCuserBO newBo = null;
ccGroupCol = getSummaryList();
Iterator iterator = ccGroupCol.iterator();
while ( iterator.hasNext()){
newBo = iterator.next(); //error here, Type mismatch: cannot convert from Object to //Object[]
System.out.println("....");
}
答案 0 :(得分:1)
如果你只是想直接打印一个Collection的所有元素,它将在输出中提供以下表单:[element1,element2,....]因为toString()方法被覆盖并实现以提供这样的所有Collection类的输出。
通过使用Iterator,您可以逐个获取元素:
Iterator iterator = ccGroupCol.iterator();
while ( iterator.hasNext()){
newBo = (**type cast here to particular newBo object type**)iterator.next();
System.out.println(newBo);//here whatever you implemented in toString() method
// in newBo type class(if you did so), you will get that type of output, if you do not override
//toString() to provide your implementation,you will get default implementation in
//which it will show <the object class>@<its hash code>
}
注意:iterator.next()的返回类型是Object类型,因此必须键入cast类型以避免不兼容的类型异常。或者使用Generics。
答案 1 :(得分:0)
我找到了解决方案。以下是示例代码:
CCGroupBO newBo;
for(int i = 0 ; i < ccGroupCol.size() ; i++){
newBo = ( CCGroupBO ) ccGroupCol.toArray()[i];
System.out.println(newBo.getGroupName());
}
感谢您的帮助。
答案 2 :(得分:0)
您可以使用for循环来迭代集合。
Collection collection= new ArrayList();
for (Object obj : collection) {
//Here you can type cast the obj then you can print.
}
答案 3 :(得分:0)
作为评论中的状态,为您自己的答案提供更快的解决方案:
Collection<CCGroupBO> ccGroupCol = new ArrayList<CCGroupBO>()
…
CCGroupBO[] boArray = ccGroupCol.toArray();
for(CCGroupBO newBo : boArray){
System.out.println(newBo.getGroupName());
}
甚至更直接:
Collection<CCGroupBO> ccGroupCol = new ArrayList<CCGroupBO>()
…
for(CCGroupBO newBo : ccGroupCol){
System.out.println(newBo.getGroupName());
}
取决于其他情况,甚至有更好的方法:
class CCGroupBO {
…
public String toString() {
return getGroupName();
}
}
…
Collection<CCGroupBO> ccGroupCol = new ArrayList<CCGroupBO>()
…
System.out.println(ccGroupCol);