RandomAccess — 빠른 임의 접근 마커 인터페이스

RandomAccess — 빠른 임의 접근 마커 인터페이스

RandomAccessList 구현이 빠른(일반적으로 상수 시간) 임의 접근을 지원함을 나타내기 위해 사용하는 마커 인터페이스예요. 모든 메서드가 없고, 단지 표시용으로만 쓰여요.

출처: Java API Reference

본문

public interface RandomAccess

이 인터페이스의 주요 목적은 제네릭 알고리즘이 임의 접근 리스트나 순차 접근 리스트에 적용될 때 좋은 성능을 내도록 동작을 바꾸는 것이에요. 임의 접근 리스트(예: ArrayList)에 최적인 알고리즘은 순차 접근 리스트(LinkedList 등)에 적용하면 이차(quadratic) 동작을 낼 수 있어요. 제네릭 리스트 알고리즘은 순차 접근 리스트에 적용하면 성능이 나빠질 알고리즘을 적용하기 전에 주어진 리스트가 이 인터페이스의 instanceof인지 확인하고, 필요하면 동작을 바꿔 허용 가능한 성능을 보장하도록 권장돼요.

임의 접근과 순차 접근의 구분이 모호한 경우도 있어요. 예를 들어 어떤 List 구현은 매우 커지면 점근적으로 선형 접근 시간을 갖지만 실제로는 상수 시간 접근을 제공해요. 그런 구현은 보통 이 인터페이스를 구현해야 해요. 경험적으로, 전형적인 인스턴스에서 for (int i=0, n=list.size(); i<n; i++) list.get(i); 루프가 for (Iterator i=list.iterator(); i.hasNext();) i.next(); 루프보다 빠르다면 List 구현은 이 인터페이스를 구현해야 해요.

이 인터페이스는 Java Collections Framework의 멤버예요.

더 알아보기 (Learn more)