2012-12-30 2 views

답변

1

네, 그렇게 할 수 있습니다. LinkedList.set(pos, newValue)을 사용하십시오.

+0

하지만 수동으로 할 수 있습니까? 어떻게 생각하니? 나에게 힌트를 줘. 감사합니다. –

+1

+1이 필요하면 ArrayList를 고려해야합니다. –

+1

@JunaidHassan 수동으로 무엇을 의미합니까? –

3

두 가지 옵션 여기, 당신은 변경 가능한 유형의 여부를 저장하고 있는지에 따라 :

  1. 당신이 변경 가능한 유형 (게터/세터 방법과 frex 간단한 콩)를 저장하는 경우를, 당신은 단순히 상태를 업데이트 할 수 (LinkedList 구현 그 자체와 관련 없음)
  2. 불변의 타입 (frex Strings)을 저장하는 경우, LinkedList.set()
  3. 을 사용하여 링크 된 인스턴스의 위치에서 이전 요소를 대체 할 수 있습니다

사용자 정의 유형을 저장하는 경우 실제로는 해당 유형을 변경할 수 있는지 여부와 상관없이 디자인 문제입니다.

0

수동으로 할 수 있습니까? 어떻게 생각하니?

"는 수동 않는다"당신이 LinkedList 클래스의 캡슐화를 깨는 직접 클래스를 개인 데이터 구조를 업데이트하여 의미 의한 경우

...

  • 이 가능 반사를 사용하여이 작업을 수행 할 수 있습니다.
  • 시도하는 것은 매우 나쁜 생각/나쁜 습관입니다.

올바른 방법은 set 작업을 사용하는 것입니다. 이 작업을 위해 연결된 목록을 반복하는 데 드는 비용이 걱정된다면 다른 List 구현을 사용하십시오. set 작업은 ArrayList에서 빠르며 사용자 지정 연결 목록 구현으로이 작업을 수행 할 수도 있습니다.

+0

무엇이 좋은 아이디어일까요? –

+1

좋은 생각은 LinkedList에서 제공하는 공용 인터페이스를 사용하는 것입니다. 특정 indes에서 새로운 것으로 객체를 대체하기를 원한다면, 다른 답에 나타난 것처럼'set()'메소드를 사용하십시오. –