我想将包含数字和运算符的队列更改为ArrayList。 我是用Java编写的。
目前我的队列定义如下:
Queue outputQueue = new LinkedList();
队列当前包含以下数据:
[1, 9, 3, /, 4, 3, -, 2, /, *, +]
我希望这样做主要是因为我可以使用RPN来计算计算结果。
有办法做到这一点吗?
提前感谢您的任何帮助:)
答案 0 :(得分:6)
ArrayList list = new ArrayList(outputQueue);
答案 1 :(得分:3)
这样做
List list = new ArrayList(outputQueue);
答案 2 :(得分:2)
虽然其他答案是创建ArrayList
的正确方法。您只需将其转换为List
即可。这将保留相同的基础数据结构(LinkedList
),但您可以将其用作List。
Queue outputQueue = new LinkedList();
List list = (List)outputQueue;
天气与否这是一种更好的方式来做你需要的取决于你如何使用List。您必须确定创建新ArrayList
的成本是否值得访问数据的潜在速度增加。看看When to use LinkedList<> over ArrayList<>?。
答案 3 :(得分:0)
像这样的代码
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);