indexOf 메서드를 사용하여 객체의 위치를 반환하고 싶지만이 이름을 검색하려는 연락처의 이름 만 전달하려는 경우에는 이게 끝날거야?arrayList에있는 customObject와 함께 IndexOf 사용
public int findItem(String name)
{
int max = contactList.size();
//you might have to subtract this by one
//I'm not sure off the top
int descCnt = max;
for(int cnt = 0; cnt <= max/2; cnt++)
{
if(contactList.get(cnt).getName().equals(name)) return cnt;
if(contactList.get(descCnt).getName().equals(name)) return descCnt;
--descCnt;
}
}
아니요, 여전히 O (n)입니다. 이러한 종류의 "최적화"는 목록의 양쪽 끝에서 항목을 가져 오는 것이 더 많은 캐시 가져 오기를 유발할 수 있기 때문에 상황을 더 느리게 만들 수 있습니다. –
복잡도는 O (n)입니다. for-loop에서 반만큼 반복 작업을 수행 할 수도 있지만 모든 요소를 여전히 검사하고 있습니다. 이것은 모든 것을 하나씩 반복하는 것보다 낫지 않습니다. – nasukkin
나는 본다. 명확하게 해 주셔서 감사합니다. 평균적으로 응답 속도가 빨라 집니까? @AndyTurner –