Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类堆栈的push方法返回其参数的实际用例_Java_Collections_Stack_Legacy Code - Fatal编程技术网

Java 类堆栈的push方法返回其参数的实际用例

Java 类堆栈的push方法返回其参数的实际用例,java,collections,stack,legacy-code,Java,Collections,Stack,Legacy Code,1类堆栈:公共E推送项目 类堆栈-它的push方法只返回其参数,这与较新的Deque不同,后者各自的push方法现在无效: public E push(E item) 您能否提供使用此功能的任何有用的实际/生产示例 我知道堆栈是遗留的,请改用Deque实现 但这项功能是如何在传统应用中使用的呢?我想它可以用于呼叫链接,但想不出一个实际的例子 2你在日常工作中是否经常需要使用Stack类?它还被广泛使用吗?或者大多数遗留应用程序已经被重构以使用Deque 3如果我在任何我正在积极开发的旧应用程序

1类堆栈:公共E推送项目

类堆栈-它的push方法只返回其参数,这与较新的Deque不同,后者各自的push方法现在无效:

public E push(E item)
您能否提供使用此功能的任何有用的实际/生产示例

我知道堆栈是遗留的,请改用Deque实现

但这项功能是如何在传统应用中使用的呢?我想它可以用于呼叫链接,但想不出一个实际的例子

2你在日常工作中是否经常需要使用Stack类?它还被广泛使用吗?或者大多数遗留应用程序已经被重构以使用Deque

3如果我在任何我正在积极开发的旧应用程序中遇到堆栈并添加新功能,那么将堆栈重构为Deque是否有任何实际好处,是否值得?我知道在新的应用程序中Deque更受欢迎,但如果我已经在遗留应用程序中使用了Stack,那么从实践的角度来看,是否有绝对值得将其重构为Deque的情况

4如果我需要在多线程访问中使用堆栈数据结构,我应该使用ConcurrentLinkedQue,因为我更喜欢Deque实现而不是堆栈类,对吗?或者现在有没有使用堆栈进行多线程访问的实践?我想没有,但我还是想问问大师。

1是的。考虑这个类:

class Foo
{
    public void activate() { }
}
有时更简洁的做法是能够写:

Stack<Foo> s = new Stack<>();
s.push(new Foo()).activate();
而不是:

Stack<Foo> s = new Stack<>();
Foo f = new Foo();
f.activate();
s.push(f);
2不,至少在过去5年里,我从未使用过或见过使用过它。我发现斯塔克的名声比它好。大多数人知道如何避免,即使他们不清楚原因

3这是这个问题的重复:

关于您删除的与搜索方法相关的问题:

你的假设是错误的。堆栈扩展了Vector,因此继承了Vector的所有公共方法,其中一个是。因此,如果愿意,您可以使用此索引