標籤:棧 iterator 資料存放區 鏈表
最近偶然開始對stack進行研究,發現這個還蠻簡單的,與類似的鏈表集合不一樣的是,stack可以通過直接new stack()建立。
stack資料存放區方式為“後進先出”的方式,例如:
Stack<String> stack = new Stack<String>();stack.add("zhangsan");stack.add("lisi");stack.add("wangwu");stack.add("qianliu");stack.add("zhaoda");int index = stack.search("qianliu");// 尋找對象位置int index1 = stack.search("zhaoda");// 尋找對象位置System.out.println("位置為:"+index+":"+index1);stack.add(3, "孫二娘");String first=stack.firstElement();System.out.println("first="+first);stack.push("王五");System.out.println("top="+stack.lastElement());
在stack中,可以發現最後添加的資料“王五”需要通過lastElement方法擷取,如果需要採用search擷取位置index,那麼可以預計位置為1.
stack中對資料已經存在的資料的操作方法都提供了返回參數如:String delete=stack.pop();
stack提供了直接添加入list集合的方法。
下面是對stack中資料的遍曆:
Iterator<String> it=stack.iterator();while(it.hasNext()){String object=it.next();System.out.print(object+",");}
java支援堆棧中對象元素為null,也可以通過設定setSize(int num)使得資料為null。
最後介紹一下在堆棧中添加list集合:
Stack<String> stack = new Stack<String>();stack.add("zhangsan");stack.add("lisi");stack.add("wangwu");stack.add("qianliu");stack.add("zhaoda");stack.add(null);List<String> list=new ArrayList<String>();list.add("A");list.add("B");list.add("C");stack.addAll(list);System.out.println("size="+stack.size());Iterator<String> it=stack.iterator();while(it.hasNext()){String object=it.next();System.out.print(object+",");}
輸出結果為:size=9
zhangsan,lisi,wangwu,qianliu,zhaoda,null,A,B,C,
以上對stack的操作皆來自於對jdk中stack內建方法的處理。並不具備實際的企業開發意義,但是瞭解堆棧也為以後選擇儲存資料提供了一個新的方式。
java 關於stack 的文法解析