배열을 비교하려고 합니다
조회수 515회
하나의 배열을 여러 배열과 비교하려고 하는데요 예를들어 A={1,1,1,1}, B={{0,0,0,0},{1,1,1,1},{2,2,2,2},{3,3,3,3},....}, C={{10,10,10,10},{20,20,20,20},.....} ,D = {},... A와 B를 비교하고 다시 A와 C를 비교하고 다시 A와D를 비교하고 Z까지 비교하고 싶습니다
if (Arrays.equals(A, B[1]) & Arrays.equals(A, C) & Arrays.equals(A, D) &.............) 이런식으로 해도 댈까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
기존에 질문들을 보니 모두 자바 질문이니 자바라고 가정합니다.
equals
로는 요소들이 모두 같은지 비교를 하지 못합니다.deepEquals
메소드를 사용해야 합니다.- jshell 에서 진행한 예제입니다.
jshell> int[] A={1,1,1,1} A ==> int[4] { 1, 1, 1, 1 } jshell> int[] B={1,1,1,1} B ==> int[4] { 1, 1, 1, 1 } jshell> int[] C={1,1,1,1} C ==> int[4] { 1, 1, 1, 1 } jshell> Object[] a_o = {A} a_o ==> Object[1] { int[4] { 1, 1, 1, 1 } } jshell> Object[] b_o = {B} b_o ==> Object[1] { int[4] { 1, 1, 1, 1 } } jshell> Object[] c_o = {C} c_o ==> Object[1] { int[4] { 1, 1, 1, 1 } } jshell> import java.util.Arrays; jshell> Arrays.deepEquals(a_o, b_o) && Arrays.deepEquals(a_o, c_o) $9 ==> true
댓글 입력