본문 바로가기
📚 Stack/Java

[JAVA] 자바 배열 문자열 비교

by 개발한 너굴씨 2024. 5. 11.
728x90

 

 

 

 

 

자바 배열 문자열 비교


 

 

 

 

 

 

 

자바에서 문자열 처리는 꼭 알아야 할 개념 중 하나 입니다. 특히 코드를 작성하다 보면 배열에 저장된 문자열들을 비교해야 하는 경우가 많습니다. 이번 글에서는 자바에서 배열의 문자열을 비교하는 방법과 장단점에 대해 알아보겠습니다.

 

 

 

1. 반복문과 equals() 메서드 이용

 

가장 기본적인 방법은 두 배열을 반복하면서 각 요소의 문자열을 equals() 메서드를 사용하여 비교하는 것입니다.

  • 장점:
    • 직관적이고 이해하기 쉽다.
    • 배열의 크기나 문자열의 길이에 상관없이 사용 가능하다.
  • 단점:
    • 코드가 길어질 수 있다.
    • 성능 측면에서 효율적이지 않을 수 있다.

예시 코드

public static boolean compareArrays(String[] arr1, String[] arr2) {
  if (arr1.length != arr2.length) {
    return false;
  }
  for (int i = 0; i < arr1.length; i++) {
    if (!arr1[i].equals(arr2[i])) {
      return false;
    }
  }
  return true;
}

 

 

 

 

2. Arrays.equals() 메서드 이용

자바의 Arrays 클래스는 배열을 비교하는 equals() 메서드를 제공합니다. 이 메서드는 두 배열의 요소를 순서대로 비교하여 같으면 true, 다르면 false를 반환합니다.

  • 장점:
    • 코드가 간결하고 가독성이 좋다.
  • 단점:
    • 배열의 각 요소가 동일한 순서로 있어야 한다.

예시 코드 

String[] arr1 = {"apple", "banana", "orange"};
String[] arr2 = {"apple", "banana", "orange"};

boolean isEqual = Arrays.equals(arr1, arr2); // true

 

 

 

 

 

3. Arrays.deepEquals() 메서드 이용

만약 다차원 배열을 비교해야 한다면 Arrays.deepEquals() 메서드를 사용할 수 있습니다.

  • 장점:
    • 다차원 배열을 비교할 수 있다.
  • 단점:
    • Arrays.equals()보다 성능이 느릴 수 있다.

예시 코드 

String[][] arr1 = {{"apple", "banana"}, {"orange"}};
String[][] arr2 = {{"apple", "banana"}, {"orange"}};

boolean isEqual = Arrays.deepEquals(arr1, arr2); // true

 

 

 

 

 

4. 스트림 API 활용

자바 8 이상에서는 스트림 API를 사용하여 배열을 비교할 수 있습니다.

  • 장점:
    • 코드가 간결하고 표현력이 좋다.
    • 병렬 스트림을 사용하여 성능을 향상시킬 수 있다.
  • 단점:
    • 자바 8 이상 버전에서만 사용 가능하다.

예시 코드

String[] arr1 = {"apple", "banana", "orange"};
String[] arr2 = {"apple", "banana", "orange"};

boolean isEqual = Arrays.stream(arr1).allMatch(Arrays.stream(arr2)::contains); // true

 

 

 

 

 

728x90

댓글