Explorar o código

Revert: OptionalInt

Ranides Atterwim %!s(int64=9) %!d(string=hai) anos
pai
achega
95c88feb18

+ 4 - 5
assira/src/main/java/net/ranides/assira/collection/IntCollectionUtils.java

@@ -8,7 +8,6 @@
 package net.ranides.assira.collection;
 
 import java.util.Arrays;
-import java.util.OptionalInt;
 import java.util.Set;
 import java.util.function.IntPredicate;
 import java.util.function.IntUnaryOperator;
@@ -26,19 +25,19 @@ public final class IntCollectionUtils {
 		/* utility class */
 	}
 	
-	public static OptionalInt first(IntCollection values) {
+	public static int first(IntCollection values) {
 		return IntIteratorUtils.first(values.iterator());
 	}
 	
-	public static OptionalInt first(IntCollection values, IntPredicate predicate) {
+	public static int first(IntCollection values, IntPredicate predicate) {
 		return IntIteratorUtils.first(values.iterator(), predicate);
 	}
 	
-	public static OptionalInt last(IntCollection values) {
+	public static int last(IntCollection values) {
 		return IntIteratorUtils.last(values.iterator());
 	}
 	
-	public static OptionalInt last(IntCollection values, IntPredicate predicate) {
+	public static int last(IntCollection values, IntPredicate predicate) {
 		return IntIteratorUtils.last(values.iterator(), predicate);
 	}
 	

+ 19 - 22
assira/src/main/java/net/ranides/assira/collection/iterators/IntIteratorUtils.java

@@ -10,11 +10,13 @@ import java.util.Iterator;
 import java.util.ListIterator;
 import java.util.NoSuchElementException;
 import java.util.Spliterator;
-import java.util.function.*;
+import java.util.function.Consumer;
+import java.util.function.IntConsumer;
+import java.util.function.IntFunction;
+import java.util.function.IntPredicate;
+import java.util.function.IntUnaryOperator;
 import java.util.stream.IntStream;
 import java.util.stream.StreamSupport;
-import java.util.OptionalInt;
-
 import net.ranides.assira.collection.IntCollection;
 import net.ranides.assira.collection.IntComparator;
 import net.ranides.assira.functional.IntBiPredicate;
@@ -29,46 +31,41 @@ public final class IntIteratorUtils {
         /* utility class */
     }
     
-    public static OptionalInt first(IntIterator iterator) {
-		return iterator.hasNext() ? OptionalInt.of(iterator.nextInt()) : OptionalInt.empty();
+    public static int first(IntIterator iterator) {
+		return iterator.next();
     }
     
-    public static OptionalInt first(IntIterator iterator, IntPredicate predicate) {
+    public static int first(IntIterator iterator, IntPredicate predicate) {
 		while(iterator.hasNext()) {
             int v = iterator.nextInt();
             if( predicate.test(v)) {
-                return OptionalInt.of(v);
+                return v;
             }
         }
-        return OptionalInt.empty();
+        throw new NoSuchElementException();
     }
     
-    public static OptionalInt last(IntIterator iterator) {
-        if(!iterator.hasNext()) {
-            return OptionalInt.empty();
-        }
+    public static int last(IntIterator iterator) {
         int result;
 		do {
 			result = iterator.nextInt();
 		} while(iterator.hasNext());
-        return OptionalInt.of(result);
+        return result;
 		
     }
     
-    public static OptionalInt last(IntIterator iterator, IntPredicate predicate) {
-        int result = 0;
-        boolean found = false;
+    public static int last(IntIterator iterator, IntPredicate predicate) {
+        Integer result = null;
         while(iterator.hasNext()) { 
             int v = iterator.nextInt(); 
             if(predicate.test(v)) {
                 result = v;
-                found = true;
             }
         }
-        if(!found) {
-            return OptionalInt.empty();
-        }
-        return OptionalInt.of(result);
+		if(null == result) {
+			throw new NoSuchElementException();
+		}
+        return result;
     }
     
     public static int size(IntIterator iterator) {
@@ -215,7 +212,7 @@ public final class IntIteratorUtils {
             return 0;
         }
 
-    };
+    }
 
     
     private static final class Adapter<T> implements Iterator<T> {

+ 16 - 11
assira/src/main/java/net/ranides/assira/collection/lists/IntListUtils.java

@@ -9,7 +9,6 @@ package net.ranides.assira.collection.lists;
 
 import java.util.List;
 import java.util.NoSuchElementException;
-import java.util.OptionalInt;
 import java.util.RandomAccess;
 import java.util.function.IntFunction;
 import java.util.function.IntPredicate;
@@ -30,35 +29,41 @@ public final class IntListUtils {
 		/* utility class */
 	}
 	
-	public static OptionalInt first(IntList values) {
-		return values.isEmpty() ? OptionalInt.empty() : OptionalInt.of(values.getInt(0));
+	public static int first(IntList values) {
+		if(values.isEmpty()) {
+			throw new NoSuchElementException();
+		}
+		return values.getInt(0);
 	}
 	
-	public static OptionalInt first(IntList values, IntPredicate predicate) {
+	public static int first(IntList values, IntPredicate predicate) {
 		return IntCollectionUtils.first(values, predicate);
 	}
 	
-	public static OptionalInt first(IntList values, int begin, int end, IntPredicate predicate) {
+	public static int first(IntList values, int begin, int end, IntPredicate predicate) {
 		return first(values.subList(begin, end), predicate);
 	}
 	
-	public static OptionalInt last(IntList values) {
-		return values.isEmpty() ? OptionalInt.empty() : OptionalInt.of(values.getInt(values.size()-1));
+	public static int last(IntList values) {
+		if(values.isEmpty()) {
+			throw new NoSuchElementException();
+		}
+		return values.getInt(values.size()-1);
 	}
 	
-	public static OptionalInt last(IntList values, IntPredicate predicate) {
+	public static int last(IntList values, IntPredicate predicate) {
 		IntListIterator iterator = values.listIterator(values.size());
 
         while(iterator.hasPrevious()) {
             int v = iterator.previousInt();
             if( predicate.test(v)) {
-                return OptionalInt.of(v);
+                return v;
             }
         }
-		return OptionalInt.empty();
+        throw new NoSuchElementException();
 	}
 	
-	public static OptionalInt last(IntList values, int begin, int end, IntPredicate predicate) {
+	public static int last(IntList values, int begin, int end, IntPredicate predicate) {
 		return last(values.subList(begin, end), predicate);
 	}