package basics.utl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class CollectionUtl
{
private CollectionUtl()
{
}

@SuppressWarnings("unchecked")
public static List removeFirst(List list, int elementsToRemove)
{
   if(list != null && elementsToRemove < list.size())
   {
      int j = 0;
      for(int i = elementsToRemove; i < list.size() - elementsToRemove; i++)
         list.set(j++, list.get(i));
      for(int i = elementsToRemove; i > 0; i--)
         list.remove(i);
   }
   return list;
}

public static List<String> deepCopyStringList(List<String> input)
{
   List<String> copy = new ArrayList<String>();
   if(input != null)
      for(String t : input)
         copy.add(new String(t));
   return Collections.unmodifiableList(copy);
}

public static List<String> deepCopyStringList(Iterator<String> input)
{
   List<String> copy = new ArrayList<String>();
   if(input != null)
      for(; input.hasNext();)
         copy.add(new String(input.next()));
   return Collections.unmodifiableList(copy);
}
}
