Re: CIAO, How can I sort an ArrayList<K> of Generic Types ?
Giordano wrote, quoted or indirectly quoted someone who said :
ArrayList<K> list = new ArrayList<K>();
/* ERROR --> */ java.util.Collections.sort ( list );
Roedy Green wrote:
hint. Look at the Javadoc for Collections.sort.
It says:
public static <T extends Comparable<? super T>> void sort(List<T>
list)
In other words T had bloody well better implement Comparable in a
generic way.
What do you mean by "implement Comparable in a generic way"?
Here's a prototypical use of Collections.sort(), with T = String,
output:
tangled: { first, last, always, never, maybe, }
sorted: { always, first, last, maybe, never, }
<sscce name="SortOf.java">
package testit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class SortOf
{
private static final String [] TANGLED = new String[]
{ "first", "last", "always", "never", "maybe", };
static <T> void show( List <T> list )
{
System.out.print( "{ " );
for ( T t : list )
{
System.out.print( t );
System.out.print( ", " );
}
System.out.println( "}" );
}
public void demonstrate()
{
List<String> strangs = new ArrayList <String> ();
strangs.addAll( Arrays.asList( TANGLED ));
System.out.print( "tangled: " );
show( strangs );
Collections.sort( strangs );
System.out.print( " sorted: " );
show( strangs );
}
public static void main( String[] args )
{
(new SortOf()).demonstrate();
}
}
</sscce>
--
Lew