0

我的 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());

现在我如何打印结果?

谢谢!

4

5 回答 5

2

您将不得不向您的类添加一个toString()方法,然后遍历Vectors.

也许迭代并将每个条目添加到StringBuilder,并使用逗号或类似的分隔?Apache Commons StringUtils.join()将在一次调用中为您完成此操作。

笔记。Vector这些天基本上不推荐使用(synchronised默认情况下它的方法,这有点浪费),你应该看看ArrayList或类似的。

于 2013-02-05T10:27:16.007 回答
1

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

于 2013-02-05T10:28:00.733 回答
0

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

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

于 2013-02-05T10:37:52.050 回答
0

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

for( StructRicetta rec: Ricetta){
     System.out.println(rec);
}
于 2013-02-05T10:29:16.840 回答
0

你可以在你的类中添加一个toString()方法StructRicetta,然后调用

System.out.println(Ricetta);

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

于 2013-02-05T10:28:45.813 回答