【发布时间】:2017-11-30 17:41:43
【问题描述】:
我在 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 循环应该在第一次迭代中将检查布尔值设为真。但事实并非如此。
这个问题是比较数组内部的元素,而不是整个数组本身。
【问题讨论】:
标签: java for-loop if-statement queue