将队列顶部与数组列表元素进行比较

时间:2017-11-30 17:41:44

标签: java for-loop if-statement queue

我在Java中编写了一个方法,它接收一个数组列表,其中包含另一个大小为3的数组作为每个元素。例如{{0,0,0},{1,0,0},{1,1,0} ...}。

如果队列的头部位于此数组列表中,则该方法可以解决。

队列与数组列表具有相同的结构。

public static Queue<Integer[]> q = new LinkedList<Integer[]>();
List<Integer[]> outcomes = new ArrayList<Integer[]>();

Public static boolean outcomeSearch(List<Integer[]> outcomes){
 boolean check = false;
 for (int i=0; i<outcomes.size(); i++){
     if (q.peek() == outcomes.get(i)){
         check = true;
     }
 }
 return check;
}

出于某种原因,我无法使用if语句。实际上,队列的头部是{0,0,0} 结果是{{0,0,0},{8,0,0},{0,5,0} ...}。所以for循环应该在第一次迭代中将check boolean设为true。但它并没有。

这个问题是比较数组中的元素,而不是整个数组本身。

1 个答案:

答案 0 :(得分:0)

看起来问题可能就是声明队列的方式,因此也就是在方法中实现它的方式。检查您是否将队列声明为类的静态变量或实例变量。