
com.artclod.common.collect.LinkedFList Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of functional-collections Show documentation
Show all versions of functional-collections Show documentation
FCollections is a series of function style Java Collections
package com.artclod.common.collect;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.function.Function;
import com.artclod.common.collect.base.BaseFList;
import com.artclod.common.collect.builder.CollectionBuilder;
import com.google.common.collect.Lists;
public class LinkedFList extends BaseFList> {
private static final long serialVersionUID = 1L;
public static LinkedFList wrap(LinkedList inner) {
return new LinkedFList(inner);
}
public static LinkedFList create() {
return new LinkedFList(Lists.newLinkedList());
}
public static LinkedFList create(Iterable extends E> elements) {
return new LinkedFList(Lists.newLinkedList(elements));
}
@SafeVarargs
public static LinkedFList create(E... elements) {
return new LinkedFList(Lists.newLinkedList(Arrays.asList(elements)));
}
public LinkedFList(LinkedList inner) {
super(inner);
}
// This exist so we can create a CollectionBuilder of the right type
static class LinkedFListBuilder extends LinkedFList implements CollectionBuilder> {
private static final long serialVersionUID = 1L;
public LinkedFListBuilder(LinkedList inner) {
super(inner);
}
@Override
public LinkedFList build() {
return this;
}
}
@Override
protected CollectionBuilder> builder() {
return new LinkedFListBuilder(new LinkedList());
}
@Override
public LinkedFList map(Function super E, ? extends O> f) {
LinkedList create = Lists.newLinkedList();
for (E e : this) {
create.add(f.apply(e));
}
return new LinkedFList(create);
}
@Override
public LinkedFList flatMap(Function super E, ? extends Collection extends O>> mapper) {
LinkedList create = Lists.newLinkedList();
for (E e : this) {
create.addAll(mapper.apply(e));
}
return new LinkedFList(create);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy