배열을 비교하려고 합니다

조회수 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) &.............) 이런식으로 해도 댈까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 자바에요? 사용한 언어가 무엇인가요? 정영훈 2019.11.19 22:16

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
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)