All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.artclod.common.collect.LinkedFList Maven / Gradle / Ivy

There is a newer version: 0.0.15
Show newest version
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 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 f) {
		LinkedList create = Lists.newLinkedList();
		for (E e : this) {
			create.add(f.apply(e));
		}
		return new LinkedFList(create);
	}
	
	
	@Override
	public  LinkedFList flatMap(Function> 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