最近偶然开始对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
以上对stack的操作皆来自于对jdk中stack自带方法的处理。并不具备实际的企业开发意义,但是了解堆栈也为以后选择存储数据提供了一个新的方式。
原文地址:http://blog.csdn.net/trsli/article/details/44155065