Java 如何打印 Vector[] 的所有值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3018170/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to print all values of Vector[]
提问by terence6
I have a Vector
of Object[]
type that stores my data. How to print all it's objects ?
我有一个存储我的数据Vector
的Object[]
类型。如何打印所有对象?
The code:
编码:
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;
}
printing
印刷
public static void main(String[]args){
main m = new Main();
for(int i=0; i< m.vector.size(); i++){
}
}
}
And I'd like to get sth like this :
我想得到这样的东西:
1202393057117 1 OOOOO String
1202393057117 2 OOOOO String
1202393057118 3 OOOOO String
1202393057118 4 OOOOO String
1202393057118 5 OOOOO String
1202393057117 1 OOOOO 字符串
1202393057117 2 OOOOO 字符串
1202393057118 3 OOOOO 字符串
1202393057118 4 OOOOO 字符串
1202393057118字符串5 OOOOO 字符串
采纳答案by Lauri Lehtinen
Inside your printing for loop:
在您的打印循环中:
Object[] objs = vector.get(i);
for (Object o : objs) {
System.out.print(o + " ");
}
System.out.println();
回答by Nikita Rybak
Arrays.deepToString(vector.get(i));
Or print them manually, as Lauri Lehtinen suggests.
或者按照 Lauri Lehtinen 的建议手动打印它们。
回答by Richard Fearn
Within the loop:
在循环内:
Object[] o = m.vector.get(i);
System.out.printf("%d %d %s %s\n", o[0], o[2], o[1], o[3]);
回答by Bozho
Joshua Bloch, in Effective Java, suggests using the for-each loop whenever possible:
Joshua Bloch 在Effective Java中建议尽可能使用 for-each 循环:
for (Object[] array : vector) {
for (Object obj : array) {
System.out.println(obj);
}
}
But since you are using the Object[]
with fixed size of 4, with pre-known set of properties, it is highly advisable to create a new class:
但是,由于您使用的Object[]
是固定大小为 4 的具有预先已知的属性集,因此强烈建议创建一个新类:
class DataHolder {
private someProperty;
private someOtherProperty;
... + setters and getters
}
And instead of array[2] = something
, you will have dataHolder.setSomeProperty(something)
- far more readable and maintainable.
而不是array[2] = something
,您将拥有dataHolder.setSomeProperty(something)
- 更具可读性和可维护性。
The next step is to override toString()
(again as advised by Bloch) and implement it to print the whole internal state of the object.
下一步是覆盖toString()
(再次按照 Bloch 的建议)并实现它以打印对象的整个内部状态。
And then the loop will look like this:
然后循环将如下所示:
for (DataHolder dataHolder : vector) {
System.out.println(dataHolder);
}
回答by Prakash Bhandari
You can also print vector elements by using following code
您还可以使用以下代码打印矢量元素
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() + " ");
回答by lavee_singh
I think you don't need to do anything special. The code snippet below works just fine:
我认为你不需要做任何特别的事情。下面的代码片段工作得很好:
System.out.println("The vector is: " + vector);
Queries are welcome!
欢迎查询!