C# Array.sort与CompareTo

为什么在一个类实现IComparable的CompareTo方法,Array.sort给类排序就会调用类里的CompareTo

CompareTo方法定义的就是具体的类的排序的方法,具体是对象大小的比较方法。
任何一种排序方法的基本操作其实就是对待排序对象的大小的比较,根据结果进行操作。
因此,类实现IComparable的CompareTo方法,Array.sort给类排序就会调用类里的CompareTo方法,实现比较的自定义。
温馨提示:内容为网友见解,仅供参考
无其他回答

C# Array.sort与CompareTo
因此,类实现IComparable的CompareTo方法,Array.sort给类排序就会调用类里的CompareTo方法,实现比较的自定义。

C#的自动排序函数是什么?怎么用
你可以用Array类的Sort()方法,如: Array.Sort(arr) 就行了,不过之前要转成int型 还有另外一种方法,就是写一个类,这个类实现IComparer<>接口,比如: public class test : IComparer<string> { #region IComparer<string> 成员 public int Compare(string x, string y) { return int.Parse(...

java.util.Arrays.sort(x); 这个表示对的是按 降序、升序还是其他的什么...
按照升序排列,如果对于实现了comparable接口的类来说,则是在执行int compareTo(Object o)方法,返回为1的放在后面,如A类实现了comparable接口,A类有a1,a2两个对象,如果a1.compareTo(a2)的值为1,则表示a1>a2,sort之后,为 a2,a1

初学JAVA,用Arrays.sort()排序,为什么总是数不出结果?
在Arrays类中,已实现的明确参数类型的sort方法,并没有二维数组这个参数类型,你这里调用又没报错,应该是使用了参数类型为Object数组的sort方法,既调用时将你的二维数组转成了object数组,看源码你会发现,在这个方法往下执行的时候,会在某一个步骤发生类型转换,也就是将你数组中每一个元素类型转成co...

编写一个C#程序,随机产生1000个整数存入数组中,利用两种排序方法将数据...
public void sort(E[] array, int from, int len) { E tmp=null;for(int i=from+1;i<from+len;i++){ tmp=array[i];int j=i;for(;j>from;j--){ if(tmp.compareTo(array[j-1])<0){ array[j]=array[j-1];} else break;} array[j]=tmp;} } } 二 冒泡排序 这可能是...

用c#自己写一个方法,实现结构体数组排序
{ string name;int score;public int CompareTo(student other){ int result = string.Compare(this.name, other.name);if(0 == result){ if (this.score > other.score)return 1;else if (this.score == other.score)return 0;else return -1;} else return result;} } Array.Sort(st)...

...里的Comparator这两个接口的排序该如何去很好的理解able和Compar
Comparator是说你自己可以创造一个比较器,可以使用Arrays.sort(array,comparator) 这么就按照你的想法排序了。 这里面comparator你当然可以写成一个匿名类了,里面需要实现方法compare()。而Comparable 直接就提供了eaqul比较 因为你实现该类的时候会实现一个方法compareTo() 。一个意思 ...

java.util.Arrays.sort(x); 这个表示对的是按 降序、升序还是其他的什么...
按照升序排列,如果对于实现了comparable接口的类来说,则是在执行int compareTo(Object o)方法,返回为1的放在后面,如A类实现了comparable接口,A类有a1,a2两个对象,如果a1.compareTo(a2)的值为1,则表示a1>a2,sort之后,为 a2,a1

java中用到ArrayList.sort()为什么会出现“使用了未经检查或不安全的...
存在类型匹配隐患,在个人用一般没问题,自己能确认类型无误,在main()上面加@SuppressWarnings("unchecked")就行 要是给别人用或者教常用和可能以后需要扩展,还是改了好。1,.Student类的定义改为class Student implements Comparable<Student> 2.类中的方法改为 public int compareTo(Student s) { ret...

C#如何实现在ArrayLis中Sort()方法,使其按自定义类中的某个元素进行排序...
int id;public string name{get;set;} public A(int id, string name){ this.id = id;this.name = name;} public int CompareTo(object obj){ var a = obj as A;if (a.id > this.id){ return -1;} else if (a.id < this.id){ return 1;} else { return 0;} } } } ...

相似回答