我有Vector
Object[]
类型存储我的数据。如何打印它的所有对象?
代码:
private static Vector<Object[]> vector = new Vector<Object[]>();
int event=0;
for(int i=0; i<10; i++){
vector.add( this.addToObject(System.currentTimeMillis(), event , "String") );
event++;
}
private Object[] addToObject(long t, int i,String s ){
Object[] o = new Object[4];
o[3] = s;
o[2] = i;
o[1] = "00000";
o[0] = t;
return o;
}
印刷
public static void main(String[]args){
main m = new Main();
for(int i=0; i< m.vector.size(); i++){
}
}
我想得到这样的话:
1202393057117 1OO0000字符串
1202393057117 2 OOOOO String
1202393057118 3 OOOOO String
1202393057118 4 OOOOO String
1202393057118 5 OOOOO String
答案 0 :(得分:5)
在打印循环中:
Object[] objs = vector.get(i);
for (Object o : objs) {
System.out.print(o + " ");
}
System.out.println();
答案 1 :(得分:5)
for (Object[] array : vector) {
for (Object obj : array) {
System.out.println(obj);
}
}
但是,由于您使用固定大小为4的Object[]
,并且使用预先知道的属性集,因此建议您创建一个新类:
class DataHolder {
private someProperty;
private someOtherProperty;
... + setters and getters
}
而不是array[2] = something
,您将拥有dataHolder.setSomeProperty(something)
- 更具可读性和可维护性。
下一步是覆盖toString()
(再次按照Bloch的建议)并实现它以打印对象的整个内部状态。
然后循环将如下所示:
for (DataHolder dataHolder : vector) {
System.out.println(dataHolder);
}
答案 2 :(得分:1)
Arrays.deepToString(vector.get(i));
或者手动打印,正如Lauri Lehtinen建议的那样。
答案 3 :(得分:1)
您还可以使用以下代码
打印矢量元素Vector v = new Vector();
v.addElement("Java");
v.addElement("is");
v.addElement("programming");
v.addElement("language");
// enumerate the elements in the vector.
Enumeration vEnum = v.elements();
System.out.println("\nElements in vector:");
while(vEnum.hasMoreElements())
System.out.print(vEnum.nextElement() + " ");
答案 4 :(得分:1)
我认为你不需要做任何特别的事情。下面的代码片段工作得很好:
System.out.println("The vector is: " + vector);
欢迎查询!
答案 5 :(得分:0)
在循环中:
Object[] o = m.vector.get(i);
System.out.printf("%d %d %s %s\n", o[0], o[2], o[1], o[3]);