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

net.sf.javagimmicks.collections.ListComparator Maven / Gradle / Ivy

The newest version!
package net.sf.javagimmicks.collections;

import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

import net.sf.javagimmicks.util.ComparableComparator;

@SuppressWarnings("unchecked")
public class ListComparator implements Comparator>
{
   private final Comparator _elementComparator;

   @SuppressWarnings("rawtypes")
   public static ListComparator> COMPARABLE_INSTANCE = new ListComparator(ComparableComparator.INSTANCE);

   public ListComparator(Comparator elementComparator)
   {
      _elementComparator = elementComparator;
   }
   
   public static > ListComparator getComparableInstance()
   {
      return (ListComparator) COMPARABLE_INSTANCE;
   }
   
   public int compare(List list1, List list2)
   {
      Iterator iterator1 = list1.iterator();
      Iterator iterator2 = list2.iterator();
      
      while(iterator1.hasNext() && iterator2.hasNext())
      {
         E element1 = iterator1.next();
         E element2 = iterator2.next();
         
         int iCompareResult = _elementComparator.compare(element1, element2);
         
         if(iCompareResult != 0)
         {
            return iCompareResult;
         }
      }
      
      if(iterator1.hasNext())
      {
         return -1;
      }
      else if(iterator2.hasNext())
      {
         return 1;
      }
      else
      {
         return 0;
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy