Stack
/*list接口*/
/*stack栈*/
public static void main(String[] args) {
//创建栈对象,使用Stack声明,有泛型,因为5个方法属于Stack栈容器独有,所以使用Stack<>声明
java.util.Stack<String> 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<String> 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);
}