我在一个包含单个int成员的普通类上实现Comparable接口.
我可以这样实现它:
@Override
public int compareTo ( final MyType o )
{
return
Integer.valueOf( this.intVal ).compareTo(
Integer.valueOf( o.intVal )
);
}
但是这(可能)会创建2个完全不必要的Integer对象.
或者我可以从Integer类中尝试一下真正的剪切和粘贴方法:
@Override
public int compareTo ( final MyType o )
{
int thisVal = this.intValue;
int anotherVal = o.intValue;
return (thisVal
这非常有效,但不需要复制代码.
是否有一个库可以实现这个缺少的Integer(和Double和Float)方法?
public static int compare ( int v1,int v2 );
最佳答案
>对于int,编写自己的比较方法(最多需要三行
码).
>对于双倍,使用
相比于).
>对于浮动,使用
码).
>对于双倍,使用
Double.compare
(不要混淆相比于).
>对于浮动,使用
Float.compare
.
最后两个采用原始类型,从而避免装箱和拆箱.我可以看到Integer的一个参数提供了一个类似的比较方法,但事实并非如此.