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