打印矢量<myclass> </myclass>

时间:2013-02-05 10:24:40

标签: java vector

我的Vector打印有问题: 我有这个矢量:

Vector<StructRicetta> Ricetta=new Vector<StructRicetta>();

StructRicetta类:

public class StructRicetta {
    String nomeric;
    int n;
    Vector<String> ingrediente=new Vector<String>();
    Vector<String> quantita=new Vector<String>();
    Vector<Boolean> facoltativo=new Vector<Boolean>();
    String preparazione;
}

我从文件中读取了这个结构的值。 在阅读器函数中,我返回到StructRicetta类型,并将其添加到向量中:

Ricetta.add(Myclass.reader());

现在我该如何打印结果?

谢谢!

5 个答案:

答案 0 :(得分:2)

您将不得不在类中添加toString()方法,然后遍历Vector

也许迭代并将每个条目添加到StringBuilder,并使用逗号或类似内容分开? Apache Commons StringUtils.join()会在一次电话会议中为您做到这一点。

请注意。 Vector目前在很大程度上已被弃用(默认情况下它的方法为synchronised,这有点浪费),您应该查看ArrayList或类似内容。

答案 1 :(得分:1)

一般情况下,如果你想从对象而不是内存地址打印出有用的东西,你需要覆盖public String toString()函数,然后使用System.out.println(该对象)来查看它。

答案 2 :(得分:0)

您可以在toString()课程中添加StructRicetta方法,然后调用

System.out.println(Ricetta);

将Vector的内容打印到控制台。

答案 3 :(得分:0)

首先我会覆盖你的tructRicetta类的toString方法,而不是迭代你的Vector:

for( StructRicetta rec: Ricetta){
     System.out.println(rec);
}

答案 4 :(得分:0)

请注意,Vector实现了List,并遵循List的toString规则。在编写代码迭代Vector之前,首先测试它的toString是否符合您的要求。

为了使它有用,你需要给StructRicetta一个很好的toString方法。