1
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로 설정해야합니다. 그러나 그렇지 않습니다.
이 문제는 전체 배열 자체가 아닌 배열 내부 요소를 비교합니다.
OP가 q의 정의를 우리에게 보여주지 않았기 때문에 우리는 알 수 없지만 그것도 비교되는 방식 일 수 있습니다. – max
대기열은 다음과 같이 선언됩니다. public static Queue q = 새 LinkedList (); –
q LinkedList를 인쇄하여 비어 있지 않은지 확인하십시오. 나는 당신의 코드에 잘못된 것을 보지 않는다. – ferpujol