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