Java:如何判断两个ArrayDeque是否相等?

问题描述 投票:0回答:1

Java中有没有办法判断两个数组双端队列是否相等?堆栈有一个 .equals() 运算符吗?

数组双端队列中的equals方法是什么?这是我临时写的。如果没有库方法,有什么办法优化下面的代码吗?

ArrayDeque<Character> sQueue = new ArrayDeque<Character>();
ArrayDeque<Character> tQueue = new ArrayDeque<Character>();

if (sQueue.size() != tQueue.size()) return false;

while (!sQueue.isEmpty()) {
   if (sQueue.removeLast() != tQueue.removeLast()) {
       return false;
   }
}

return true;
java stack arraydeque
1个回答
0
投票

虽然您比较两个 ArrayDeque 实例是否相等的方法是正确的,但它可能会有所改进。一开始,您可以测试大小是否不相等,如果大小不同则返回 false。因此,可以直接使用 ArrayDeque 中的 equals 方法来比较内容。这是优化和简化代码的方法:

ArrayDeque<Character> sQueue = new ArrayDeque<>();
ArrayDeque<Character> tQueue = new ArrayDeque<>();

// Check for size inequality
if (sQueue.size() != tQueue.size()) {
    return false;
}

// Compare the contents using equals method
return sQueue.equals(tQueue);
© www.soinside.com 2019 - 2024. All rights reserved.