2012-04-04 4 views
0

제목은 실제로 내가 실제로 찾고있는 것을 말하지 않고, 몇 마디로 설명하기가 어렵다는 것을 알고 있습니다.고정 길이의 LinkedList 변형 검색,

내가 찾고있는 것은 Java 용 링크드 변형입니다. 반복 할 수는 있지만 고정 길이의 것이 있습니다.

당신은 Kerbal Space Program에서 인공 위성의 지상 경로를 추적하고 싶습니다. 데이터는 Telemetry Plugin에서 가져옵니다. 그러나 나는 단지 약 2 시간 동안 지상 경로 만 보여주고 싶다. 이제 전체 데이터가 연결된 목록에 기록되지만 시간이 지남에 따라 목록이 길어지고 길어지고 결국에는 너무 커서 목록을 반복하여 궤도의 마지막 두 시간에 대한 데이터를 얻습니다. 새로운 데이터 집합이 필요합니다.

따라서 내가 찾고있는 링크드 변형은 길이가 가장 긴 것부터 가장 최근의 것까지의 시간이 2 시간이 넘는 임무 시간. 따라서 이전 비행의 전체 데이터 세트가 아니라 상대적으로 적은 수의 항목을 반복해야합니다 (CSV에 저장하기 위해 저장 됨).

도움이되는 사람들의 도움을 주시면 감사하겠습니다.

+0

[this] (http://stackoverflow.com/questions/1963806/is-there-a-fix-sized-queue-which-removes-excessive-elemets) 대답이 도움이 될 수 있습니까? –

+1

이 도움이됩니다. http://stackoverflow.com/questions/1963806/is-there-a-fix-sized-queue-which-removes-excessive-elemets – ahanin

+0

이미 시도했지만 나는 그것을 원한다. – Warringer

답변

2

LinkedList의 끝을 정기적으로 트리밍하는 스레드 만 유지하십시오. 특별한 일이 필요하지 않습니다. 모든 Queue 구현이 작동 할 것입니다. ArrayDeque 일 수 있습니다.

즉, 너무 오래 된 요소를 버리는 래퍼 Queue 구현을 사용하여 LinkedList을 꾸미거나 장식하십시오.

+0

흠 ... 아이디어가 좋은 것 같습니다. 그러나 스레드가 좋고 사용하는 것이 좋지 않기 때문에 새 항목이 추가되면 마지막 항목을 다듬을 수 있는지 자동으로 보이는 항목을 사용하려고합니다. – Warringer

1

Louis Wasserman의 제안대로 대기열을 사용하는 것이 좋습니다. 그러나 고려해야 할 다른 가능성은 circular linked list입니다.

이것은 단순히 문제를 설명 할 때 내 마음 속에 들어온 첫 번째 데이터 구조이며, 자연적으로 가장 적합하다고 생각합니다. 불행히도 내가 자바에서 사용할 수있는 모든 원형 순환 연결된 목록 구현 알고 있지 않습니다, 그래서 당신이 이것을 구현하거나 자신의 구현을 타사 코드를 사용해야 할 것입니다 ...

+0

내가 찾고있는 Linkd 목록은 동일한 기간 동안 항상 동일한 수의 항목이있는 것은 아니기 때문에 '고정 기간'을 통해 길이가 동적입니다. – Warringer

+0

@Warringer - 오해. 오 잘, 대기열은 아마도 가장 좋았을 것입니다. – gnomed

0

나는 거의 모든 목록 구현을 래핑하는 것이 좋습니다 목록에 추가하고 방금 추가 한 요소를 목록의 마지막 요소와 비교하고 시간 차이가 2 시간보다 큰 경우 마지막 요소를 제거합니다.

+0

첫 번째 대답에서 나 자신을 얻었지만 어쨌든 고맙습니다. :) – Warringer

관련 문제