오잉? 여기서
변수로 직접 접근하지 않고 메소드를 사용하는 이유는?
>>그래야지 외부에서 저 size라는 변수값을 마음대로 수정하지 못하기 때무니.
그래서 이전에, 저 size값은 private로 선언했다.
System.out.println(numbers.indexOf(20));
20의 값을 가지는 인덱스가 몇번이냐? 를 알아보고 싶다. .indexOf()
이것도 구현해보자.
자 일단 쭉 순회하면서 해당 값이 있는지 없는지 체크하는과정이 필요하겠지
public int indexOf(Object o){
for(int i=0; i<size; i++){
if(o.equals(elementData[i])){
return i;
}
}
return -1;
}
ㅇ .equals()의 사용을 알았다
ㅇ return은 for문을 강제로 종료시킨다.
++함수는 리턴을 한번만합니다. for문에서 리턴을 했으므로, 그 밑의 코드는 당연히 실행 안됩니다.
ㅇ 만약 o와 같은 값이 배열에 없다... -> return -1;
![](https://blog.kakaocdn.net/dn/vVTW4/btqCOfs3HsC/ekgA1nG9ELBkRDC84iGsM1/img.png)
오케이~~
!!
sting.equals(Object other) 메소드를 사용하면 string객체의 문자열을 비교할 수 있으나,
==연산자를 사용하면 문자열 데이터를 비교할 수 없다.
equals() 메소드는 string객체의 문자열을 비교 체크하는 반면,
==연산자는 객체의 참조값이 같은지를 체크한다.
문자열 객체를 만드는 방법이 두 가지가 있는데,
첫째 : 문자열 리터럴(소스 코드의 고정된 값을 대표하는 용어다.) 사용하는 방법 --> 해당 문자열과 동일한 문자열의 객체가 존재한다면
기존 객체의 참조값을 공유하는 형태로 문자열 객체가 생성된다.
이런 경우에는 ==연산자를 사용해서 "두 문자열이 같다"라는 결과를 얻을 수 있다.
하지만 이것은 좋은 방법이 아니라고 한다.
그래서 항상 equals()메소드를 사용해서 문자열을 비교하는 것이 좋다고 한다.
둘째 : String 클래스의 생성자를 사용하기
'자료구조 + 알고리즘' 카테고리의 다른 글
[자료구조] Linked list의 구조 (0) | 2020.03.28 |
---|---|
[자료구조] 원소를 무한히 저장하는 ArrayList 구현하기 [JAVA] (0) | 2020.03.28 |
[자료구조] ArrayList 구현 - toString사용, 데이터 확인하기 [Java] (0) | 2020.03.17 |
[자료구조] ArrayList 구현 - get, 데이터 가져오기 [Java] (0) | 2020.03.16 |
[자료구조] ArrayList 구현 - add/addFirst, 데이터를 중간/처음에 추가 [Java] (0) | 2020.03.12 |