Generico - exercício resolvido

Obrigado a todos vocês que me ajudaram na resolução deste exercício do livro java como programar:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package genericosjava.treino;

/**
 *
 * @author rafacyber
 */
public class GenericMethodTest {
    
    
    public static <E> void printArray( E[] inputArray)
    {
        for (E element: inputArray)
            System.out.printf("%s", element);
        
        System.out.println();
    }
    
     public static <E extends Comparable<E>> void sort( E[] inputArray)
     {
                  
         //for (E element: inputArray)
         //   System.out.printf("%s", element);
        
        //System.out.println();
        
        //System.out.println(inputArray[2]);
        
        //--------------------------------------------------------
        int smallest;
        
        for ( int i = 0; i < inputArray.length - 1; i++)
        {
            smallest = i;

            for ( int index = i + 1; index < inputArray.length; index++)
            {
                if (inputArray[index].compareTo(inputArray[smallest]) == -1)
                    smallest = index;                    
            }
            swap( i, smallest, inputArray );
            printPass( i + 1, smallest, inputArray );
        }
     }
     
    public static <E extends Comparable<E>>void swap(int first, int second, E[] inputArray)
    {
        Object temporary =  inputArray[first];
        inputArray[first] = inputArray[second];
        inputArray[ second ] = (E)temporary;
    }
    
    public static <E extends Comparable<E>> void printPass( int pass, int index, E[] inputArray )
    {
        System.out.print(String.format("after pass %2d: ", pass ));

        for ( int i = 0; i < index; i++)
            System.out.print(inputArray[i] + " ");

        System.out.print(inputArray[index] + "* ");

        for( int i = index + 1; i < inputArray.length; i++)
            System.out.print(inputArray[i] + "  ");

        System.out.print("\n                     ");

        for ( int j = 0; j < pass; j++)
            System.out.print("-- ");
        System.out.println("\n");
    }
    
    public static void main(String args[])
    {
        Integer[] integerArray = {1, 3, 5, 2, 4};
        Double[]  doubleArray = {1.1, 5.5, 3.3, 2.2, 5.5, 7.7, 6.6};
        Character[] characterArray = {'H', 'E', 'L', 'L', 'O'};
        
        //System.out.println("Array integerArray contains:" );
        //printArray(integerArray );
        //System.out.println("\nArray doubleArray contains:" );
        //printArray( doubleArray );
        //System.out.println("\nArray characterArrat contains: ");
        //printArray(characterArray);
        
        sort(integerArray);
        sort(doubleArray);
        sort(characterArray);
        
    }

}

Claro que tem muita coisa para melhorar… demorei para caramba para sacar estes genéricos…tomara que eu não esqueço de tão cedo…