Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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 从队列转换为ArrayList_Java_Arrays_List_Arraylist_Casting - Fatal编程技术网

Java 从队列转换为ArrayList

Java 从队列转换为ArrayList,java,arrays,list,arraylist,casting,Java,Arrays,List,Arraylist,Casting,我想将包含数字和运算符的队列更改为ArrayList。 我正在用Java编写代码 目前我的队列定义如下: Queue outputQueue = new LinkedList(); 队列当前包含以下数据: [1, 9, 3, /, 4, 3, -, 2, /, *, +] 我希望这样做主要是为了使用RPN来计算计算结果 有办法做到这一点吗 提前感谢您的帮助:)请这样做 List list = new ArrayList(outputQueue); Queue outputQueue = n

我想将包含数字和运算符的队列更改为ArrayList。 我正在用Java编写代码

目前我的队列定义如下:

Queue outputQueue = new LinkedList();
队列当前包含以下数据:

[1, 9, 3, /, 4, 3, -, 2, /, *, +]
我希望这样做主要是为了使用RPN来计算计算结果

有办法做到这一点吗

提前感谢您的帮助:)

请这样做

List list = new ArrayList(outputQueue);
Queue outputQueue = new LinkedList();
outputQueue.add("1");
outputQueue.add("9");
outputQueue.add("3");
outputQueue.add("/");
outputQueue.add("4");
outputQueue.add("3");
outputQueue.add("-");
outputQueue.add("2");
outputQueue.add("*");
outputQueue.add("+");
ArrayList arraylist = new ArrayList(outputQueue);

而其他答案是创建
ArrayList
的正确方法。您只需将其强制转换为
列表
。这将保留相同的底层数据结构(
LinkedList
),但您可以将其用作列表

Queue outputQueue = new LinkedList();
List list = (List)outputQueue;
天气与否这是一个更好的方法来做你需要的取决于你如何使用列表。您必须决定创建一个新的
ArrayList
的成本是否值得访问数据的潜在速度提高。请看。

这样的代码

List list = new ArrayList(outputQueue);
Queue outputQueue = new LinkedList();
outputQueue.add("1");
outputQueue.add("9");
outputQueue.add("3");
outputQueue.add("/");
outputQueue.add("4");
outputQueue.add("3");
outputQueue.add("-");
outputQueue.add("2");
outputQueue.add("*");
outputQueue.add("+");
ArrayList arraylist = new ArrayList(outputQueue);

我不明白为什么你需要它是一个
ArrayList
。嗯,一个简单的while循环就可以了?