2009-12-21 4 views
0

Java에서 거기에 Deque이라는 클래스가 있고 .NET (C#)에서 이와 비슷한 것을 찾고 싶습니다.C# - Java의 Deque

내가 필요한 이유는 컬렉션의 마지막 항목을 들여다보고 컬렉션의 첫 번째 항목을 큐에서 제거해야하기 때문입니다.

감사합니다. AJ Ravindiran.

답변

6

PowerCollections는 Deque와 클래스 (그리고 입증 된 혈통)가 있습니다.

+0

+1 실제로 솔루션을 제공합니다. –

+0

LinkedList 위에 무엇이 제공됩니까 ? –

2

목록은 당신을 위해 수행해야합니다

var l = new List<int>(); 
var last = l[l.Count - 1]; 
l.RemoveAt(0); 
+0

일시적인 해결 방법이 있습니다. 문제 : RemoveAt (0)은 O (n) 시간이 걸립니다. –

0

이와 비슷한 내용이 in another SO question에 표시되었습니다.

인기있는 대답은 연결된 목록으로 정착되어있는 것 같았으며 Eric Lippert는 자신의 Deque implementation을 제안했습니다.

그래서 나는 내장 .NET에서

HTH 더 엄격한 데이터 구조가없는 짧은 대답이없는 것 같다.

+0

Eric의 Deque 구현은 변경 불가능한 콜렉션이라는 점에 유의해야합니다. 불변성이 당신에게 중요하지 않은 경우,보다 효율적으로 변경할 수있는 deque 구현이있을 수 있습니다. –

0

여기 내 Deque<T>의 구현 (링 버퍼를 사용하여)와 동시 잠금이없는 ConcurrentDeque<T>입니다 deque의 양쪽 끝의 Pop 및 Peek 조작. 모두 O (1) 시간.

관련 문제