任意のタイプの配列をソートするための汎用クラスを作成しようとしました。
最初の並べ替え関数は、任意の種類の配列の並べ替えを行います。 うまく動作します。ジェネリックリストをJavaの汎用配列に変換する方法は?
2番目のソート関数では、リストを渡して、最初のソート関数を使用するように配列に変換しようとしました。 しかし、リストを汎用クラス内の配列に変換しようとすると、予期しない型のエラーがスローされます。
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Sort<T extends Comparable>{
//public T l;
T tmp;
public void sort(T[] l){
for(int i=0;i<l.length;i++){
for(int j=i+1;j<l.length;j++){
if(l[i].compareTo(l[j])>0){
tmp=l[i];
l[i]=l[j];
l[j]=tmp;
}
}
}
System.out.println(Arrays.asList(l));
}
public <T extends Comparable> void sort(List<T> l){
T[] array = (T[]) new Object[l.size()];
sort(l.toArray(T[] array));
// System.out.println(l);
}
public static void main(String[] args){
Integer[] i={2,4,1,5,3};
List<String> l = Arrays.asList("c","d","a","e","b");
Sort s=new Sort();
//String[] j=l.toArray(new String[l.size()]);
s.sort(i);
s.sort(l);
}
}