标签: comparable

有趣的Java泛型

有谁知道如何使用泛型编写下面的代码并避免编译器警告?(@SuppressWarnings("未选中")被视为作弊).

并且,也许,通过泛型检查"左"的类型是否与"右"的类型相同?

public void assertLessOrEqual(Comparable left, Comparable right) {
    if (left == null || right == null || (left.compareTo(right) > 0)) {
        String msg = "["+left+"] is not less than ["+right+"]";
        throw new RuntimeException("assertLessOrEqual: " + msg);
    }
}
Run Code Online (Sandbox Code Playgroud)

java generics comparable

1
推荐指数
1
解决办法
902
查看次数

Comparable []是存储各种变量的好方法吗?

    Comparable w[] = new Comparable[5];
    w[0] = 1;
    w[1] = "string";
    w[2] = 2.0;
Run Code Online (Sandbox Code Playgroud)

这是一个好方法吗?实际上为什么它可以工作(我只是随机尝试)?也许是因为Comparable扩展了Integers,Strings,Doubles等?所以呢?

java comparable

1
推荐指数
1
解决办法
698
查看次数

如何检查java中vector中的用户自定义条目?

我有一个条目矢量.每个条目都是此类的一个实例:

public class Entry implements Comparable<Entry>{

    private String _key;
    private CustomSet _value;

    [...]

    @Override
    public int compareTo(Entry a) {
        return this._key.compareTo(a._key);
    }
}
Run Code Online (Sandbox Code Playgroud)

向量声明如下:

Vector<Entry> entries = new Vector<Entry>();
Run Code Online (Sandbox Code Playgroud)

之后,填充向量.然后我想检查某个键是否在向量中的某个位置.所以我这样做:

Entry sample = new Entry(key, new CustomSet());
if (entries.contains(sample)) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.为什么?我怎样才能让它发挥作用?

PS CustomSet是另一个用户定义的类,与我的观点无关

java contains vector comparable

1
推荐指数
1
解决办法
3734
查看次数

收藏打破

从这个链接

名称对象是不可变的.在所有其他条件相同的情况下,不可变类型是可行的方法,特别是对于将在集合中用作元素或在地图中用作键的对象.如果您在集合中修改元素或键,这些集合将会中断.我们怎么知道"Name"这个类是不可变的?(上面提到的链接中可见类名)

它们实际上意味着什么"如果你修改它们的元素,那么这些集合会破裂?"

提前致谢.

java collections comparable

1
推荐指数
1
解决办法
81
查看次数

是否可以为值类使用两个compareTo方法?

快速示例是用户名和姓的集合.

一种方法要求我使用名字进行比较,使用姓氏进行比较.是否有可能有两个不同的compareTo()?

或者我最好创建两个不同的值类?

java sorting collections comparable

1
推荐指数
1
解决办法
4450
查看次数

为什么我的书会说Integer的compareTo有一个Object参数?

我正在为AP计算机科学考试做准备,我对文本对Integer课程的讨论感到困惑.

文本定义IntegercompareTo,如下所示:

 int compareTo(Object other)
Run Code Online (Sandbox Code Playgroud)

从一开始我就知道它会有一个Object参数,因为我认为这是它可以实现的唯一方法Comparable.但是,我最终查看了IntegerEclipse 中的类,我发现它使用了泛型Comparable,因此compareTo使用Integer参数定义.

这是我书中的错误吗?这使我相信,这是铸造ObjectInteger的方法,这是错误的(并就考试的差别).我在这里错过了什么吗?

java generics integer comparable

1
推荐指数
1
解决办法
48
查看次数

超级Java通配符

我读到使用带有这样的超级通配符:

public class MyClass <T extends Comparable<? super T>> {
   ...
}
Run Code Online (Sandbox Code Playgroud)

代替:

public class MyClass <T extends Comparable<T>> {
   ...
}
Run Code Online (Sandbox Code Playgroud)

可以让这个班级"更通用",但我不明白为什么.

有人能提供一些具体的例子吗?

java generics wildcard super comparable

1
推荐指数
1
解决办法
244
查看次数

是否有可能采用通用Comparable的方法?

我正在Java中为学校实现合并排序算法.

它应该能够采取任何可比较的对象.

我创建了一个静态mergeSort(ArrayList输入)方法,但显然我不能将ArrayList或ArrayList转换为ArrayList,即使它们都实现了可比性.

如何表示可比数据的ArrayList?

java sorting merge arraylist comparable

1
推荐指数
1
解决办法
37
查看次数

证明equals与compareTo齐头并进

这是写在所有的java像样的课程,如果你实现了Comparable接口,你应该(在大多数情况下)覆盖equals以匹配其行为的方法.

不幸的是,在我目前的组织中,人们试图说服我完全相反.我正在寻找最有说服力的代码示例,向他们展示将要发生的所有邪恶.

java equals compareto comparable

1
推荐指数
2
解决办法
790
查看次数

如何使整数具有可比性

我试图使用类似的接口来排序随机生成的数组,但我收到错误消息:

不兼容的类型:int []无法转换为Comparable []

int [] list;
list = new int[n];

for(int i=0;i<n;i++){
    list[i]=(int)(1+n*Math.random());
}
sortingoutsorts.bubble(list);
}
private static void swap(Object [] list, int x, int y)
{
    Object temp=list[x];
    list[x]=list[y];
    list[y]=temp;
}
public static void bubble(Comparable [] list)
{
    boolean done=false;
    while(!done)
    {
        done=true;
        for(int i=0; i+1<list.length; i++)
            if(list[i].compareTo(list[i+1])>0)
            { swap(list,i,i+1); done=false; }
    }
}
Run Code Online (Sandbox Code Playgroud)

java compareto comparable

1
推荐指数
1
解决办法
126
查看次数