2010-06-10 431 views
1

我有一个VectorObject[]类型,用于存储我的数据。如何打印所有的对象?如何打印Vector的所有值[]

代码:

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 1 OOOOO字符串
1202393057117 2 OOOOO字符串
1202393057118 3 OOOOO字符串
1202393057118 4 OOOOO字符串
1202393057118 5 OOOOO字符串

+1

这是功课吗?如果是这样,请将其标记为。 – rsp 2010-06-10 20:23:15

+1

为什么人们仍然在使用Vector而不是ArrayList?有一些地下网络的书籍还在使用Vector吗? – 2010-06-11 02:14:32

回答

5

内,您的打印的for循环:

Object[] objs = vector.get(i); 
for (Object o : objs) { 
    System.out.print(o + " "); 
} 
System.out.println(); 
1
Arrays.deepToString(vector.get(i)); 

或手动打印出来,作为劳里莱赫蒂宁建议。

0

在循环:

Object[] o = m.vector.get(i); 
System.out.printf("%d %d %s %s\n", o[0], o[2], o[1], o[3]); 
5

约书亚·布洛克,在Effective Java,建议使用for-each循环尽可能:

for (Object[] array : vector) { 
    for (Object obj : array) { 
     System.out.println(obj); 
    } 
} 

但由于您使用的是Object[]用的4个固定大小,与预先知道的一组属性,建议创建一个新的类是强烈建议:

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); 
} 
+0

对于初学者来说,每个循环都会提取出学习语言的人应该知道的重要细节。 – jjnguy 2010-06-10 20:50:16

+2

他们应该学习如何使用for-each。常规的for-loop是微不足道的,我怀疑任何人都会遇到问题。另一方面,不是每个人都使用,经常出现问题。 – Bozho 2010-06-10 20:52:12

+0

@jjnguy:抽象是好的。无知是不好的。不,我不相信使用更高的抽象会导致无知。 – polygenelubricants 2010-06-11 07:58:14

0

您也可以通过下面的代码打印矢量元素

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() + " "); 
1

我觉得你不需要做任何特殊。下面的代码片段工作得很好:

System.out.println("The vector is: " + vector); 

查询欢迎!