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;
虽然您比较两个 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);