iterables for primitive types

This commit is contained in:
Alex Tkachman
2011-12-17 09:47:14 +02:00
parent 9dc37438bc
commit 935a8cd2fa
11 changed files with 113 additions and 9 deletions
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface BooleanIterable extends Iterable<Boolean> {
@Override
BooleanIterator iterator();
}
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface ByteIterable extends Iterable<Byte> {
@Override
ByteIterator iterator();
}
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface CharIterable extends Iterable<Character> {
@Override
CharIterator iterator();
}
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface DoubleIterable extends Iterable<Double> {
@Override
DoubleIterator iterator();
}
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface FloatIterable extends Iterable<Float> {
@Override
FloatIterator iterator();
}
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface IntIterable extends Iterable<Integer> {
@Override
IntIterator iterator();
}
+4 -4
View File
@@ -2,7 +2,7 @@ package jet;
import jet.typeinfo.TypeInfo;
public final class IntRange implements Range<Integer>, Iterable<Integer>, JetObject {
public final class IntRange implements Range<Integer>, IntIterable, JetObject {
private final static TypeInfo typeInfo = TypeInfo.getTypeInfo(IntRange.class, false);
private final int start;
@@ -39,7 +39,7 @@ public final class IntRange implements Range<Integer>, Iterable<Integer>, JetObj
}
@Override
public Iterator<Integer> iterator() {
public IntIterator iterator() {
return new MyIterator(start, count);
}
@@ -66,7 +66,7 @@ public final class IntRange implements Range<Integer>, Iterable<Integer>, JetObj
}
}
private static class MyIterator implements Iterator<Integer> {
private static class MyIterator extends IntIterator {
private final static TypeInfo typeInfo = TypeInfo.getTypeInfo(MyIterator.class, false);
private int cur;
@@ -86,7 +86,7 @@ public final class IntRange implements Range<Integer>, Iterable<Integer>, JetObj
}
@Override
public Integer next() {
public int nextInt() {
count--;
if(reversed) {
return cur--;
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface LongIterable extends Iterable<Long> {
@Override
LongIterator iterator();
}
+4 -4
View File
@@ -2,7 +2,7 @@ package jet;
import jet.typeinfo.TypeInfo;
public final class LongRange implements Range<Long>, Iterable<Long>, JetObject {
public final class LongRange implements Range<Long>, LongIterable, JetObject {
private final static TypeInfo typeInfo = TypeInfo.getTypeInfo(IntRange.class, false);
private final long start;
@@ -39,7 +39,7 @@ public final class LongRange implements Range<Long>, Iterable<Long>, JetObject {
}
@Override
public Iterator<Long> iterator() {
public LongIterator iterator() {
return new MyIterator(start, count);
}
@@ -66,7 +66,7 @@ public final class LongRange implements Range<Long>, Iterable<Long>, JetObject {
}
}
private static class MyIterator implements Iterator<Long> {
private static class MyIterator extends LongIterator {
private final static TypeInfo typeInfo = TypeInfo.getTypeInfo(MyIterator.class, false);
private long cur;
@@ -86,7 +86,7 @@ public final class LongRange implements Range<Long>, Iterable<Long>, JetObject {
}
@Override
public Long next() {
public long nextLong() {
count--;
if(reversed) {
return cur--;
+9
View File
@@ -0,0 +1,9 @@
package jet;
/**
* @author alex.tkachman
*/
public interface ShortIterable extends Iterable<Short> {
@Override
ShortIterator iterator();
}