// vec.java -- Vector in Java, @CopyLeft by tsaiwn@csie.nctu.edu.tw // Vector 就是必要時會自己長大的 array; In Java, Stack extends Vector import java.util.*; import java.io.*; class vec { public static void main(String xx[ ]) { new vec( ); } PrintStream cout = System.out; Vector x = new Vector(); // 來個 整數 vector :-) Vector y = new Vector (3); // y is a 整數 Integer Vector of capacity 3 //注意 Java 不可以 Vector 但是 C++ STL 可以 vector //vector *pv = new vector(8); // Java has no pointer vec( ) { main( ); } int main( ) { // the original main( ) in C/C++ cout.print("Vector x.capacity = " + x.capacity( )+ "; "); cout.println("Vector y.capacity = " + y.capacity( )); cout.println("==calling test( )" ); test( ); cout.print("=== bye ===\n"); return 0; }//main( ) void test( ) { for(int i=1; i <= 18; ++i) { x.add(i); // x.push_back(i); cout.print("add " + i + ", size: " + x.size( ) ); cout.println(", capacity: " + x.capacity( ) ); } cout.printf("=== ALL in x: "); for(int i=0; i < x.size( ); ++i) cout.printf("%d ", (int)x.get(i)); cout.printf("\n"); // use iterator to traverse x cout.printf("=== ALL in x through an iterator:\n "); Iterator p = x.iterator( ); for( ; p.hasNext( ) ; ) cout.printf("%d ", (int)p.next( ) ); cout.printf("\n"); }//test( }//class /****** 注意 Java 的 Vector default capacity 是 10; 但 C++ STL 的是 0 D:\COURSE\OOP\ppnt>javac vec.java D:\COURSE\OOP\ppnt>java vec Vector x.capacity = 10; Vector y.capacity = 3 ==calling test( ) add 1, size: 1, capacity: 10 add 2, size: 2, capacity: 10 add 3, size: 3, capacity: 10 add 4, size: 4, capacity: 10 add 5, size: 5, capacity: 10 add 6, size: 6, capacity: 10 add 7, size: 7, capacity: 10 add 8, size: 8, capacity: 10 add 9, size: 9, capacity: 10 add 10, size: 10, capacity: 10 add 11, size: 11, capacity: 20 add 12, size: 12, capacity: 20 add 13, size: 13, capacity: 20 add 14, size: 14, capacity: 20 add 15, size: 15, capacity: 20 add 16, size: 16, capacity: 20 add 17, size: 17, capacity: 20 add 18, size: 18, capacity: 20 === ALL in x: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 === ALL in x through an iterator: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 === bye === D:\COURSE\OOP\ppnt> *****************************************/