java中排序有哪些方法 javaset集合的值可以排序嗎?
javaset集合的值可以排序嗎?S:TreeSet會調(diào)用集合元素的compareTo(Objectobj)方法來比較元素之間的大小關(guān)系,然后將集合的元素按升序排列,這種就是自然排序.為什么集合元素有
javaset集合的值可以排序嗎?
S:TreeSet會調(diào)用集合元素的compareTo(Objectobj)方法來比較元素之間的大小關(guān)系,然后將集合的元素按升序排列,這種就是自然排序.為什么集合元素有compareTo方法,因為集合元素對象實現(xiàn)了Comparable接口,該方法返回一個整數(shù)值,當(dāng)一個對象調(diào)用該方法與另一個對象進行比較,例如(obj2)如果返回0,表示這兩個對象相等,如果該方法返回一個正整數(shù),表示obj1大于obj2如果該方法返回一個負整數(shù),表示obj1小于obj2所以需要使用TreeSet集合進行自然排序,元素必須實現(xiàn)Comparabl:StringCharacterBooleanDateTimeBigDecimalBigInt:Tr
Java類中參數(shù)列表的個數(shù)與數(shù)據(jù)類型有哪些?
可變參數(shù) 參數(shù)的個數(shù)不確定,可以是0個可以是多個,參數(shù)的數(shù)據(jù)類型必須相同 可變參數(shù)必須要寫在參數(shù)列表的最后 操作可變參數(shù),要通過使用數(shù)組的第6天 可變參數(shù) 參數(shù)的個數(shù)不確定,可以是0個可以是多個,參數(shù)的數(shù)據(jù)類型必須相同 可變參數(shù)必須要寫在參數(shù)列表的最后 操作可變參數(shù),要通過使用數(shù)組的 數(shù)組排序 冒泡排序 選擇排序 二分法查找 Arrays 工具類 面向?qū)ο?n
一道java面試題,20億數(shù)字的文本排序,如何取前100?
每行一個數(shù)字
自己寫個最?。ù螅┒巡痪屯炅?,c 也可以用標準庫里的優(yōu)先隊列。先找出前100大,然后再對前100大進行排序就是結(jié)果。。。。這題目簡直不要太簡單。。。。常見擴展就是1億個url,如何找出出現(xiàn)最次數(shù)前100多的url。
有點笨的方法.:將20億的數(shù)字分成2000(2萬)個數(shù)據(jù)一段(或文件),對每組數(shù)組取1個(也可10個),直接匯總既可。也可多取再二次分組或三次分組。更多次就約準確。
我作為一個外行看來,這樣的方案應(yīng)該可以吧:假如要找出的是排大到小的前100.那么隨機抓取20億個中的100個,然后將這100個數(shù)排序,然后將剩下的數(shù)字中逐個跟100個中的最小的比較,如果比100個中最小的小,就淘汰這個,換下一個,如果那個數(shù)比100個中的最小的大,則將這個數(shù)置換掉那個最小的,100個再排序,(這次排序就很快了),接著再從剩余的數(shù)字中抓一個來比較,直至20億個全部比較完,剩下的100個就是最大的前100
我贊成兩個靠譜的回答
1
取100個數(shù)字排序,后面的數(shù)字依次和100個數(shù)字最小的比,最后留下100個最大的
2
根據(jù)字符串長度、小數(shù)、負數(shù)幾個屬性分類,可以直接排除部分較短的數(shù)字不轉(zhuǎn)化為數(shù)字,然后做排序。這應(yīng)該能省一些轉(zhuǎn)換數(shù)字的時間吧?