마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

코드를 이해못하는부분이 있어서 질문드립니다

0 추천

소스를 살펴보고있는데 

코드를 이해못하는부분이 있어서 질문드립니다

 

public static class SchedulableEvent {
    private long mTimestamp;
    private SchedulableEvent mNext = null;
    public SchedulableEvent(long timestamp) {
        mTimestamp = timestamp;
    }
    public long getTimestamp() {
        return mTimestamp;
    }
    public void setTimestamp(long timestamp) {
        mTimestamp = timestamp;
    }
}
private class FastEventQueue {
    // One thread takes from the beginning of the list.
    volatile SchedulableEvent mFirst;
    // A second thread returns events to the end of the list.
    volatile SchedulableEvent mLast;
    volatile long mEventsAdded;
    volatile long mEventsRemoved;

    FastEventQueue(SchedulableEvent event) {
        mFirst = event;
        mLast = mFirst;
        mEventsAdded = 1; // Always created with one event added. Never empty.
        mEventsRemoved = 0; // None removed yet.
    }

    int size() {
        return (int)(mEventsAdded - mEventsRemoved);
    }

    public SchedulableEvent remove() {
        // Take first event.
        mEventsRemoved++;
        SchedulableEvent event = mFirst;
        mFirst = event.mNext;
        return event;
    }

    public void add(SchedulableEvent event) {
        event.mNext = null;
        mLast.mNext = event;
        mLast = event;
        mEventsAdded++;
    }
}

 

위의코드 add 메소드부분에서

mLast.mNext = event;

mLast = event; 

이렇게 mLast 에 event 를 넣으면 

event 를 넣기전의  mLast 에 들어있는 값은 어떻게되나요?

제가이해하기로는

add 메소드를 호출하면 mLast 에는 계속해서 인자로주어진 새로운 값이들어가고

이전의 mLast 에 들어있는값들에 접근할수있는방법이 없어질것같은데

잘못이해한건가요?

잡부 (5,110 포인트) 님이 2019년 1월 10일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...