Java 创建新的通用数组以实现可比较的

Java 创建新的通用数组以实现可比较的,java,generics,comparable,Java,Generics,Comparable,是否有可能创建一个新的通用数组来实现可比性 我有点像: public class MyClass<T extends Comparable<T>> { ... public T[] myAlgorithm( T[] list1, T[] list2 ) { T[] newList = (T[]) new Object( ... ); if ( list1[0].compareTo( list2[0] ) < 0 )

是否有可能创建一个新的通用数组来实现可比性

我有点像:

public class MyClass<T extends Comparable<T>> {
    ...
    public T[] myAlgorithm( T[] list1, T[] list2 ) {
        T[] newList = (T[]) new Object( ... );

        if ( list1[0].compareTo( list2[0] ) < 0 ) {
            ...
        }

        return newList;
    }
}
我创建了对象类的一个新实例(所有类的父类),并将其转换为参数化类型以获得参数化数组。我从其他渠道了解到,这是一种方法。但我希望它能像我的算法在代码中显示的那样使用comparable,我不想使用集合

有没有这样的方法?

一种方法如下(未经测试的代码):

公共类MyClass{
公共T[]myAlgorithm(T[]列表1,T[]列表2){
@抑制警告(“未选中”)
T[]newList=(T[])Array.newInstance(list1[0].getClass(),list1.length);
for(t1:list1){
对于(t2:list2){
如果(t1.与(t2)==0相比){
//待办事项
}
}
}
返回newList;
}
}

有很多方法可以做到这一点,但你应该认真考虑这是否是个好主意。为什么不想使用集合?请看@Chthonic-啊,对不起,那是个打字错误。当我累了的时候不应该编码。@drewmore-试图在算法上获得一个非常小的性能提升。其他人说这有帮助。我同意这篇文章,但通常我不太担心优化。我正在比较几种语言中的优化合并排序算法,这就是为什么我试图获得较小的性能优势。@Chthonic-对不起,我没有尝试比较列表,我只是厌倦了,把示例代码弄乱了。谢谢你,希拉克。我之前尝试过使用
Array.newInstance
,但不起作用。我想我不应该太累。
[Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable
public class MyClass<T extends Comparable<T>> {
    public T[] myAlgorithm( T[] list1, T[] list2 ) {
        @SuppressWarnings("unchecked")
        T[] newList = (T[])Array.newInstance(list1[0].getClass(), list1.length);

        for (T t1 : list1) {
            for (T t2 : list2) {
                if(t1.compareTo(t2)==0) {
                    //TODO
                }
            }
        }

        return newList;
    }
}