Stack
/*list接口*/ /*stack栈*/ public static void main(String[] args) { //创建栈对象,使用Stack声明,有泛型,因为5个方法属于Stack栈容器独有,所以使用Stack声明 java.util.Stack aa = new java.util.Stack(); System.out.println(aa.empty());//查看栈是否为空,空位true //进栈 String bb = aa.push("a"); System.out.println(bb); aa.push("b"); aa.push("c"); System.out.println(aa.empty()); System.out.println(aa.peek()); //查看栈顶元素,但不取出 String pop = aa.pop(); System.out.println(pop); //查看栈顶元素并取出 System.out.println(aa.pop()); //第二次取出栈顶元素 System.out.println(aa.search("a")); //查看栈中是否有指定元素,有则返回栈中元素 System.out.println(aa.search(1)); //查看栈中是否有指定元素,没有则返回-1 }
/*==========Stack容器实用练习(判断字符串中元素是否对称)==========*/ String str="...(...[.....{...}....]...)...(....).....[.....]...."; public void DuiChen(){ Boolean out=true; java.util.Stack dd = new java.util.Stack(); for(int i=0;i<str.length();i++){ char c=str.charAt(i); //String类的charAt()方法,根据索引值返回字符串中对应的单个字符 if(c=='('){ dd.push(")"); } if (c=='['){ dd.push("]"); } if (c=='{'){ dd.push("}"); } if (c==')'||c==']'||c=='}'){ if (dd.empty()){ out=false; break; } String g=dd.pop(); if (c!=g.charAt(0)){ out=false; break; } } } if (!dd.empty()){ //字符串元素全部取出后判断后,如果容器中还有元素,字符串就不是对称的 out=false; } System.out.println(out); }