package com.day5; import java.util.Enumeration; import java.util.Vector; /** * @author SFJ * @date 2019/11/11 * @time 22:24 **/ public class Test2 { public static void main(String[] args) { Enumeration<String>days; Vector<String>dayNo = new Vector<String>(); dayNo.add("Sun"); dayNo.add("Mon"); dayNo.add("Tue"); dayNo.add("Wed"); dayNo.add("Thu"); dayNo.add("Fri"); dayNo.add("Sat"); days = dayNo.elements(); while (days.hasMoreElements()) { System.out.println(days.nextElement()); } } }
一個Bitset類建立一種特殊類型的數組來保存位值。BitSet中數組大小會隨須要增長。這和位向量(vector of bits)比較相似。java
BitSet定義了兩個構造方法。數組
1:構造方法(無參數)框架
BitSet()//建立默認對象
2:容許用戶指定初始大小,全部位初始化爲0測試
BitSet(int size)//數組的長度指定
package com.day5; import java.util.BitSet; /** * @author SFJ * @date 2019/11/11 * @time 23:02 **/ public class Test3 { public static void main(String[] args) { BitSet bits1 = new BitSet(16); BitSet bits2 = new BitSet(16); for(int i=0; i<16; i++) { if((i%2) == 0) bits1.set(i); if((i%3) != 0) bits2.set(i); } System.out.println("Initial pattern in bits1: "); System.out.println(bits1); System.out.println("\nInitial pattern in bits2: "); System.out.println(bits2); // AND bits bits2.and(bits1); System.out.println("\nbits2 AND bits1: "); System.out.println(bits2); // OR bits bits2.or(bits1); System.out.println("\nbits2 OR bits1: "); System.out.println(bits2); // XOR bits bits2.xor(bits1); System.out.println("\nbits2 XOR bits1: "); System.out.println(bits2); } }
Vector類和數組類似,可是Vector的大小能根據須要動態的變化。和數組同樣,Vector對象的元素也能經過索引訪問。使用Vector類最主要的好處就是在建立對象的時候沒必要給對象指定大小,它的大小會根據須要動態的變化。Vector 類實現了一個動態數組。和 ArrayList 很類似,還存在不一樣:spa
Vector()
Vector(int size)
Vector(int size,int incr)
Vector(Collection c)
package com.day5; import java.util.Enumeration; import java.util.Vector; /** * @author SFJ * @date 2019/11/11 * @time 23:12 **/ public class Test4 { public static void main(String[] args) { // initial size is 3, increment is 2 Vector v = new Vector(5, 2); System.out.println("Initial size: " + v.size()); System.out.println("Initial capacity: " + v.capacity()); v.addElement(new Integer(1)); v.addElement(new Integer(2)); v.addElement(new Integer(3)); v.addElement(new Integer(4)); System.out.println("Capacity after additions: " + v.capacity()); v.addElement(new Double(2.23)); System.out.println("Current capacity: " +v.capacity()); v.addElement(new Double(5.764)); v.addElement(new Integer(7)); System.out.println("Current capacity: " +v.capacity()); v.addElement(new Float(3.4)); v.addElement(new Integer(10)); System.out.println("Current capacity: " + v.capacity()); v.addElement(new Integer(11)); v.addElement(new Integer(12)); System.out.println("First element: " + (Integer)v.firstElement()); System.out.println("Last element: " + (Integer)v.lastElement()); if(v.contains(new Integer(3))) System.out.println("Vector contains 3."); // enumerate the elements in the vector. Enumeration vEnum = v.elements(); System.out.println("\nElements in vector:"); while(vEnum.hasMoreElements()) System.out.print(vEnum.nextElement() + " "); System.out.println(); } } }
後進先出(LIFO),即對象的垂直分佈的棧,當你添加一個新元素時,就將新元素放在其餘元素的頂部,從棧中取元素的時候,就從棧頂取一個元素。換句話說,最後進棧的元素最早被取出code
Stack()
package com.day5; import java.util.Stack; /** * @author SFJ * @date 2019/11/11 * @time 23:24 **/ public class Test5 { public static void main(String[] args) { Stack<Integer> st = new Stack<Integer>(); System.out.println("stack: " + st); showpush(st, 1); showpush(st, 2); showpush(st, 3); showpop(st); showpop(st); showpop(st); showpop(st); } static void showpush(Stack<Integer> st, int a) { st.push(new Integer(a)); System.out.println("push(" + a + ")"); System.out.println("stack: " + st); } static void showpop(Stack<Integer> st) { System.out.print("pop:"); Integer a = (Integer) st.pop(); System.out.println(a); System.out.println("stack: " + st); } }