Skip to content

Commit

Permalink
Add first and tail getting.
Browse files Browse the repository at this point in the history
  • Loading branch information
cao-awa committed Aug 31, 2024
1 parent aecf953 commit 4888796
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 3 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
kotlin.code.style=official
version_name=1.0.32
version_name=1.0.33
artifact_id=catheter
group_id=com.github.cao.awa
29 changes: 27 additions & 2 deletions src/main/java/com/github/cao/awa/catheter/Catheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -541,13 +541,14 @@ public <X> Catheter<T> filter(final X initializer, final BiPredicate<? super T,
* @since 1.0.0
*/
public Catheter<T> overallFilter(final IntegerAndExtraPredicate<? super T> predicate) {
return overallFilter(predicate, x -> {});
return overallFilter(predicate, x -> {
});
}

/**
* Holding items that matched given predicate.
*
* @param predicate The filter predicate
* @param predicate The filter predicate
* @param discarding The discarded elements
* @return This {@code Catheter<T>}
* @author 草
Expand Down Expand Up @@ -1176,20 +1177,44 @@ public Catheter<T> any(final Consumer<T> consumer) {
return this;
}

public Optional<T> optionalFirst() {
if (this.targets.length > 0) {
return Optional.ofNullable(this.targets[0]);
}
return Optional.empty();
}

public Catheter<T> firstOrNull(final Consumer<T> consumer) {
consumer.accept(this.targets.length > 0 ? this.targets[0] : null);
return this;
}

public Catheter<T> first(final Consumer<T> consumer) {
if (this.targets.length > 0) {
consumer.accept(this.targets[0]);
}
return this;
}

public Catheter<T> tailOrNull(final Consumer<T> consumer) {
consumer.accept(this.targets.length > 0 ? this.targets[this.targets.length - 1] : null);
return this;
}

public Catheter<T> tail(final Consumer<T> consumer) {
if (this.targets.length > 0) {
consumer.accept(this.targets[this.targets.length - 1]);
}
return this;
}

public Optional<T> optionalTail() {
if (this.targets.length > 0) {
return Optional.ofNullable(this.targets[this.targets.length - 1]);
}
return Optional.empty();
}

public Catheter<T> reverse() {
if (isEmpty()) {
return this;
Expand Down

0 comments on commit 4888796

Please sign in to comment.