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

aQute.lib.collections.ExtList Maven / Gradle / Ivy

There is a newer version: 7.0.0
Show newest version
package aQute.lib.collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collector;

import aQute.lib.strings.Strings;

public class ExtList extends ArrayList {
	private static final long serialVersionUID = 1L;

	@SafeVarargs
	public ExtList(T... ts) {
		super(ts.length);
		for (T t : ts) {
			add(t);
		}
	}

	ExtList() {
		super();
	}

	public ExtList(int size) {
		super(size);
	}

	public ExtList(Collection col) {
		super(col);
	}

	public ExtList(Iterable col) {
		for (T t : col)
			add(t);
	}

	public static ExtList from(String s) {
		return Strings.splitAsStream(s)
			.collect(collector());
	}

	public static ExtList from(String s, String delimeter) {
		return Pattern.compile(delimeter)
			.splitAsStream(s)
			.collect(collector());
	}

	private static Collector> collector() {
		return Collector.of(ExtList::new, List::add, (left, right) -> {
			left.addAll(right);
			return left;
		});
	}

	public String join() {
		return Strings.join(this);
	}

	public String join(String del) {
		return Strings.join(del, this);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy