PrettyPrintArrayList.java
package eu.javaexperience.collection.list;
import java.util.ArrayList;
import java.util.Collection;
import eu.javaexperience.collection.CollectionTools;
import eu.javaexperience.interfaces.simple.getBy.GetBy1;
public class PrettyPrintArrayList<E> extends ArrayList<E>
{
protected GetBy1<String, Collection<E>> print;
public PrettyPrintArrayList(GetBy1<String, Collection<E>> print)
{
this.print = print;
}
@Override
public String toString()
{
return print.getBy(this);
}
public static final GetBy1<String, Collection> PRINT_CONTENT_MULTILINE = new GetBy1<String, Collection>()
{
@Override
public String getBy(Collection a)
{
return CollectionTools.toStringMultiline(a);
}
};
public static final GetBy1<String, Collection> PRINT_CONTENT_ONLY_UNSEPARATED = new GetBy1<String, Collection>()
{
@Override
public String getBy(Collection a)
{
StringBuilder sb = new StringBuilder();
for(Object c:a)
{
sb.append(c);
}
return sb.toString();
}
};
}