aboutsummaryrefslogtreecommitdiff
path: root/dotnet
diff options
context:
space:
mode:
Diffstat (limited to 'dotnet')
-rw-r--r--dotnet/Mammoth/Couscous/java/util/ArrayDeque.cs35
-rw-r--r--dotnet/Mammoth/Couscous/java/util/Deque.cs10
-rw-r--r--dotnet/Mammoth/Mammoth.csproj2
3 files changed, 47 insertions, 0 deletions
diff --git a/dotnet/Mammoth/Couscous/java/util/ArrayDeque.cs b/dotnet/Mammoth/Couscous/java/util/ArrayDeque.cs
new file mode 100644
index 0000000..df5447d
--- /dev/null
+++ b/dotnet/Mammoth/Couscous/java/util/ArrayDeque.cs
@@ -0,0 +1,35 @@
+namespace Mammoth.Couscous.java.util {
+ internal class ArrayDeque<T> : Deque<T> {
+ private readonly System.Collections.Generic.IList<T> _list = new System.Collections.Generic.List<T>();
+
+ public int size() {
+ return _list.Count;
+ }
+
+ public T getFirst() {
+ if (_list.Count > 0) {
+ return _list[0];
+ } else {
+ throw new NoSuchElementException();
+ }
+ }
+
+ public T getLast() {
+ if (_list.Count > 0) {
+ return _list[_list.Count - 1];
+ } else {
+ throw new NoSuchElementException();
+ }
+ }
+
+ public void add(T value) {
+ _list.Add(value);
+ }
+
+ public T removeLast() {
+ T value = getLast();
+ _list.RemoveAt(_list.Count - 1);
+ return value;
+ }
+ }
+}
diff --git a/dotnet/Mammoth/Couscous/java/util/Deque.cs b/dotnet/Mammoth/Couscous/java/util/Deque.cs
new file mode 100644
index 0000000..c954fce
--- /dev/null
+++ b/dotnet/Mammoth/Couscous/java/util/Deque.cs
@@ -0,0 +1,10 @@
+namespace Mammoth.Couscous.java.util {
+ internal interface Deque<T> {
+ int size();
+ T getFirst();
+ T getLast();
+
+ void add(T value);
+ T removeLast();
+ }
+}
diff --git a/dotnet/Mammoth/Mammoth.csproj b/dotnet/Mammoth/Mammoth.csproj
index 1c17a82..a49035c 100644
--- a/dotnet/Mammoth/Mammoth.csproj
+++ b/dotnet/Mammoth/Mammoth.csproj
@@ -60,8 +60,10 @@
<Compile Include="Couscous\java\util\function\Function.cs" />
<Compile Include="Couscous\java\util\function\Predicate.cs" />
<Compile Include="Couscous\java\util\function\Supplier.cs" />
+ <Compile Include="Couscous\java\util\ArrayDeque.cs" />
<Compile Include="Couscous\java\util\ArrayList.cs" />
<Compile Include="Couscous\java\util\Collection.cs" />
+ <Compile Include="Couscous\java\util\Deque.cs" />
<Compile Include="Couscous\java\util\HashMap.cs" />
<Compile Include="Couscous\java\util\HashSet.cs" />
<Compile Include="Couscous\java\util\Iterator.cs" />