我发现当我为我的一个类实现CompareTo(..)时,机器之间的排序是不一致的.当两个对象相等时,它们并不总是以相同的顺序排序.我假设一些单线程迭代方法将用于排序,所以我会假设一致的排序.
鉴于以下课程..
class Property : ICompareable<Property>
{
public int Value;
public int Name;
public int CompareTo(Property other)
{
if(this.Value > other.Value)
return 1;
if(this.Value < other.Value)
return -1;
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
并给出以下对象
{
List.add(new Property( name="apple", value = 1) );
List.add(new Property( name="grape", value = 2) );
List.add(new Property( name="banana", value = 1) );
}
Run Code Online (Sandbox Code Playgroud)
当我执行
List.sort();
Run Code Online (Sandbox Code Playgroud)
然后当使用索引单步执行列表时,banana和apple的顺序会根据我正在执行代码的PC而改变.为什么是这样?
| 归档时间: |
|
| 查看次数: |
877 次 |
| 最近记录: |