class Solution {
public String solution(String[] seoul) {
String answer = "";
String find = "Kim";
for(int i=0; i<seoul.length; i++) {
if(seoul[i].equals(find)){
answer = "김서방은 " + i + "에 있다";
break;
}
}
return answer;
}
}
equals는 JAVA에서 두 객체의 서로 동일한지 비교하는 메서드이다.
Object를 상속받았기 때문에 모든 메서드에서 사용할 수 있다.
자바의 원시 타입인 int, double, boolean 등에 대해서도 equals 메서드를 사용할 수 있는데 이 경우에는 원시 타입을 해당하는 객체 래퍼 클래스로 자동 박싱하여 비교한다.
int num1 = 10;
int num2 = 20;
boolean isEqual = Integer.valueOf(num1).equals(Integer.valueOf(num2)); // false
배열에 대해서도 equals 메서드를 사용할 수 있습니다. 배열의 내용이 같은지 비교하기 위해서는 Arrays 클래스의 equals 메서드를 사용하면 된다.
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
boolean isEqual = Arrays.equals(arr1, arr2); // true
equals 메서드는 모든 객체에 대해 사용할 수 있으며, 숫자, 문자열, 배열 등 모든 타입에 대해 내용 비교를 수행할 수 있습니다.
import java.util.Arrays;
public class FindKim {
public String findKim(String[] seoul){
//x에 김서방의 위치를 저장하세요.
int x = Arrays.asList(seoul).indexOf("Kim");
return "김서방은 "+ x + "에 있다";
}
asList는 자바에서 배열을 리스트로 변환하기 위한 메서드이다. (java.util.Arrays 클래스에 있음)
배열 -> 리스트
기본형 배열의 경우 각 요소는 해당 기본형의 래퍼 클래스로 자동 변환된다.예시)
indexOf()
컬렉션 또는 문자열에서 특정 요소 또는 문자열이 처음으로 등장하는 인덱스를 반환하는 메서드이다.
이 메서드는 주어진 요소 또는 문자열을 찾아서 해당 위치의 인덱스를 반환하며, 찾지 못한 경우 -1을 반환한다.배열에서 특정 문자열이 처음으로 나오는 인텍스를 찾는건 indexOf()만 있으며, 배열형의 경우 List인터체이스를 구현한 컬렉션 클래스에서만 사용이 가능하다.
일반 배열에서는 사용할 수 없기 때문에 Arrays.asList()로 변환되었다.* indexOf() 메서드의 사용은 컬렉션과 문자열에서 약간 다를 수 있기 때문에 아래의 예시를 참고.
1. 컬렉션에서의 indexOf()
2. 문자열에서의 indexOf()
import java.util.Arrays;
class Solution {
public String solution(String[] seoul) {
for (int i = 0; i<seoul.length;i++)
if (seoul[i].equals("Kim")){
return "김서방은 "+i+"에 있다";
}
return "-1";
}
}