栈是一种数据结构,这种结构实现了数据的先进后出,那么栈是怎么运行的呢?
由上图我们可以看到,栈相当于一个封底的盒子;封底的一端我们叫栈底,数据进出的一端我们叫栈顶;当我们向栈里存放数据的时候,最先放入的数据会被放入最下面,当我们要拿出数据的时候,只能先拿出它上面的数据后才能拿到最下面的数据,这样就实现了数据的先进后出(栈的特点)
在java集合体系中也存在栈类Stack
Stack<Integer> st = new Stack<Integer>();
他和其他集合一样,可以传入泛型指定存放的数据类型
我们通过**push(E e)和pop()**方法存放和取出数据
Stack<Integer> st = new Stack<Integer>();
//通过push()方法存放数据
st.push(12);
st.push(24);
st.push(34);
//通过pop()方法取出数据
System.out.println(st.pop());//打印数据为:34
System.out.println(st.pop());//打印数据为:24
System.out.println(st.pop());//打印数据为:12
通过打印结果我们可以看到,最后存放的数据最先拿出来;最先存放的数据最后拿出来;实现了数据先进后出的特点
我们再来看看Collection继承体系中Stack所处位置
由图可以看到栈Stack的父类是Vector;因为Vector是线程安全的集合类,所以对于栈Stack来说入栈和出栈也是线程安全的
今天的分享就到这里了,如果有错误的地方,欢迎大家来指点!