Java에서 거기에 Deque이라는 클래스가 있고 .NET (C#)에서 이와 비슷한 것을 찾고 싶습니다.C# - Java의 Deque
내가 필요한 이유는 컬렉션의 마지막 항목을 들여다보고 컬렉션의 첫 번째 항목을 큐에서 제거해야하기 때문입니다.
감사합니다. AJ Ravindiran.
Java에서 거기에 Deque이라는 클래스가 있고 .NET (C#)에서 이와 비슷한 것을 찾고 싶습니다.C# - Java의 Deque
내가 필요한 이유는 컬렉션의 마지막 항목을 들여다보고 컬렉션의 첫 번째 항목을 큐에서 제거해야하기 때문입니다.
감사합니다. AJ Ravindiran.
PowerCollections는 Deque와 클래스 (그리고 입증 된 혈통)가 있습니다.
목록은 당신을 위해 수행해야합니다
var l = new List<int>();
var last = l[l.Count - 1];
l.RemoveAt(0);
일시적인 해결 방법이 있습니다. 문제 : RemoveAt (0)은 O (n) 시간이 걸립니다. –
이와 비슷한 내용이 in another SO question에 표시되었습니다.
인기있는 대답은 연결된 목록으로 정착되어있는 것 같았으며 Eric Lippert는 자신의 Deque implementation을 제안했습니다.
그래서 나는 내장 .NET에서HTH 더 엄격한 데이터 구조가없는 짧은 대답이없는 것 같다.
Eric의 Deque 구현은 변경 불가능한 콜렉션이라는 점에 유의해야합니다. 불변성이 당신에게 중요하지 않은 경우,보다 효율적으로 변경할 수있는 deque 구현이있을 수 있습니다. –
.NET의 System.Collections.Generic.LinkedList 컬렉션을 확인하십시오. , https://www.nuget.org/packages/DequeNET/
두 클래스가 푸시를 지원 https://github.com/dcastro/DequeNET
여기 내 Deque<T>
의 구현 (링 버퍼를 사용하여)와 동시 잠금이없는 ConcurrentDeque<T>
입니다 deque의 양쪽 끝의 Pop 및 Peek 조작. 모두 O (1) 시간.
+1 실제로 솔루션을 제공합니다. –
LinkedList 위에 무엇이 제공됩니까? –