aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.properties2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSList.java6
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSListIterators.java25
3 files changed, 20 insertions, 13 deletions
diff --git a/build.properties b/build.properties
index e03086e26c..73f214419f 100644
--- a/build.properties
+++ b/build.properties
@@ -22,7 +22,7 @@
mc_version=1.7.10
majorUpdate=0
minorUpdate=5
-buildNumber=3_pre4
+buildNumber=3_pre5
APIVersion=8
ic2.version=2.2.828-experimental
gregtech.version=5.09.32.36
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSList.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSList.java
index 11ce5ebafc..769b32638d 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSList.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSList.java
@@ -197,7 +197,7 @@ public class SSList<E> implements List<E>, Deque<E>, Set<E> {
// <0,1,3> N<0,3,2> <3,2,4> <2,4,5>
}
- private SSListNode<E> getNode(int index) {
+ SSListNode<E> getNode(int index) {
if (index <= (size / 2)) {
SSListNode<E> x = head;
for (int i = 0; i < index; i++)
@@ -337,12 +337,12 @@ public class SSList<E> implements List<E>, Deque<E>, Set<E> {
@Override
public ListIterator<E> listIterator() {
- return new SSListIterators.SSListListIterator<>(head,tail);
+ return new SSListIterators.SSListListIterator<>(head,tail,false);
}
@Override
public ListIterator<E> listIterator(int index) {
- return null;
+ return new SSListIterators.SSListListIterator<>(this,index);
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSListIterators.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSListIterators.java
index c3f3aba347..83b3c66046 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSListIterators.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/selfsortinglist/SSListIterators.java
@@ -35,15 +35,24 @@ public class SSListIterators {
final SSListNode<E> tail;
SSListNode<E> current;
int counter = 0;
- public SSListListIterator(SSListNode<E> head,SSListNode<E> tail) {
+ boolean reverse;
+ public SSListListIterator(SSListNode<E> head,SSListNode<E> tail, boolean reverse) {
this.head = head;
this.tail = tail;
- current = null;
+ current = reverse ? tail : head;
+ this.reverse = reverse;
+ }
+
+ public SSListListIterator(SSList<E> list, int index) {
+ this.head = list.head;
+ this.tail = list.tail;
+ current = list.getNode(index);
+ counter = index;
}
@Override
public boolean hasNext() {
- return head != current;
+ return reverse ? head != current : tail != current;
}
@Override
@@ -56,7 +65,7 @@ public class SSListIterators {
@Override
public boolean hasPrevious() {
- return tail != current;
+ return !reverse ? head != current : tail != current;
}
@Override
@@ -97,8 +106,7 @@ public class SSListIterators {
final SSListNode<E> head;
SSListNode<E> current;
public SSListIterator(SSListNode<E> head) {
- this.head = head;
- current = null;
+ this.head = this.current = head;
}
@Override
@@ -118,9 +126,8 @@ public class SSListIterators {
final SSListNode<E> tail;
SSListNode<E> current;
- public SSListReverseIterator(SSListNode<E> head) {
- this.tail = head;
- current = null;
+ public SSListReverseIterator(SSListNode<E> tail) {
+ this.tail = this.current = tail;
}
@Override