/**
*比較它的兩個順序參數。返回負整數,
*零或正整數作為第壹個參數小於、等於
*到,或大於秒。& ltp & gt
*
*在前面的描述中,符號
* & ltTT & gt;SGN(& lt;/TT & gt;& lt我& gt表情& lt/I & gt;& ltTT & gt;)& lt/TT & gt;指定數學
* & lt我& gt簽名& lt/I & gt;函數,它被定義為返回& ltTT & gt;-1 & lt;/TT & gt;,
* & ltTT & gt;0 & lt/TT & gt;,或者& ltTT & gt;1 & lt;/TT & gt;根據的值是否
* & lt我& gt表情& lt/I & gt;是負數、零或正數。& ltp & gt
*
*實施者必須確保<。TT & gt;sgn(compare(x,y)) ==
* -sgn(compare(y,x))& lt;/TT & gt;對於所有人& ltTT & gt;x & lt/TT & gt;並且& ltTT & gt;y & lt/TT & gt;。(這個
*暗示& ltTT & gt;比較(x,y)& lt;/TT & gt;必須拋出異常當且僅當
*如果& ltTT & gt;比較(y,x)& lt;/TT & gt;引發異常。)& ltp & gt
*
*實施者還必須確保關系是可傳遞的:
* & ltTT & gt;((比較(x,y)& gt;0)& amp;& amp(比較(y,z)& gt;0))& lt;/TT & gt;暗指
* & ltTT & gt;比較(x,z)>0 & lt/TT & gt;。& ltp & gt
*
*最後,實施者必須確保& ltTT & gt;compare(x,y)= = 0 & lt;/TT & gt;
*暗示& ltTT & gt;sgn(compare(x,z))==sgn(compare(y,z))& lt;/TT & gt;盡管
* & ltTT & gt;z & lt/TT & gt;。& ltp & gt
*
*通常是這樣,但是& lt我& gt不是& lt/I & gt;嚴格要求
* & ltTT & gt;(compare(x,y)= = 0)=(x . equals(y))& lt;/TT & gt;。壹般來說,
*任何違反此條件的比較器都應明確指出
*這個事實。推薦的語言是“註意:此比較器
*強加與equals不壹致的排序。"
*
* @param o1要比較的第壹個對象。
* @param o2要比較的第二個對象。
* @返回負整數、零或正整數作為
*第壹個參數小於、等於或大於
*第二。
* @拋出ClassCastException,如果參數的類型阻止它們
*正在由該比較器進行比較。
*/
int compare(T o1,T O2);
源碼解釋的很清楚。