21xrx.com
2024-09-20 05:38:27 Friday
登录
文章检索 我的文章 写文章
JAVA的实用栈
2023-06-16 08:57:13 深夜i     --     --
Java 实用

作为一名Java开发人员,栈这种数据结构是我们经常使用的。今天我想分享一下一些我在实际开发中非常常用的栈。

首先,我们先来看一下Java自带的栈类Stack和Deque。Stack是Vector类的子类,定义了五个操作,分别是push、pop、peek、isEmpty和search。Deque接口继承自Queue接口,定义了双端队列的一些操作,也可以当作栈来使用。我们先来看一下Stack的用法:


Stack stack = new Stack<>();

stack.push(1);

stack.push(2);

stack.push(3);

System.out.println(stack.pop());

System.out.println(stack.peek());

System.out.println(stack.search(2));

这段代码中,我们使用了Stack类创建了一个整型栈,将1、2、3三个元素依次入栈。然后我们先弹出栈顶的元素3,再查看栈顶元素2,最后查找元素2在栈中的位置,输出2。

除了Java自带的栈类外,我们还可以使用LinkedList来模拟栈的操作。LinkedList可以当作双向队列,队列、栈来使用,因此也可以当作栈来使用。


LinkedList stack = new LinkedList<>();

stack.push(1);

stack.push(2);

stack.push(3);

System.out.println(stack.pop());

System.out.println(stack.peek());

System.out.println(stack.indexOf(2));

这段代码中,我们使用了LinkedList模拟了一个整型栈,将1、2、3三个元素依次入栈。然后我们先弹出栈顶的元素3,再查看栈顶元素2,最后查找元素2在栈中的位置,输出1。

最后,我再介绍一下Java 8新增的Stream API中Stack的一些用法:


Stack stack = new Stack<>();

stack.push(1);

stack.push(2);

stack.push(3);

stack.stream().forEach(System.out::println);

这段代码中,我们使用了Stack类创建了一个整型栈,将1、2、3三个元素依次入栈。然后我们使用了Stream API中的forEach方法来输出这个栈中的元素。

综上所述,Java中的栈非常实用,除了Java自带的Stack和Deque外,我们还可以使用LinkedList来模拟栈的操作,甚至还可以使用Java 8新增的Stream API来对栈进行一些操作。尝试使用这些方法,相信你会在实际开发中受益匪浅。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复