亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

優雅編程之Trove集合工具類的7點整理學習分享(四十)

2019-11-11 05:27:04
字體:
來源:轉載
供稿:網友

開心一笑

【數學期末考試有點難,一考生寫的一首詩:一夜復習兩茫茫,看一句,忘三行。路遇友人,臉色皆蒼涼。視死如歸進考場,心里慌,手中忙??纪暌院笮臎鰶觯笥以?,今比亡。查成績,眾人皆過,我獨亡?!?/p>

提出問題

Trove集合庫如何使用在真實的項目中???

唯美圖片.png

解決問題

1.Trove集合簡單介紹

trove 英[tr??v] 美[tro?v] n. (物主不明的) 發掘出來的金銀財寶;

Trove:一個快速、輕量級、針對java原子類型(byte,int,float,long等)的Collection 類的集合。廢話不多說,網上資料很多~~~

2.Trove集合的maven依賴

<!-- https://mvnrepository.com/artifact/net.sf.trove4j/trove4j --><!-- trove集合框架 --><dependency> <groupId>net.sf.trove4j</groupId> <artifactId>trove4j</artifactId> <version>3.0.3</version></dependency>

3.Trove集合的具體使用

3.1支持int類型的List:TIntArrayList

跟JDK的list一樣,只是TIntArrayList這個籃子可以裝int類型的數字,具體使用可以看下面的例子。

@Testpublic void test(){ //申明int類型List TIntList list = new TIntArrayList(); list.add(1); list.add(3); list.add(1); list.add(4); list.add(5); list.add(2); list.add(0); //打印信息 for(int i = 0;i < list.size();i++){ System.out.PRint(list.get(i));//1314520 } System.out.println("------------------------"); //對List進行轉換 list.transformValues(new TIntFunction() { @Override public int execute(int i) { //對所有數字統一乘于3 return i * 2; } }); //打印信息 for(int i = 0;i < list.size();i++){ System.out.print(list.get(i));//26281040 } System.out.println("------------------------"); //默認排序,由小到大 list.sort(); //打印信息 for(int i = 0;i < list.size();i++){ System.out.print(list.get(i) + ",");//26281040 } System.out.println("------------------------");}

3.2支持int,int的map

@Testpublic void test(){ //key 和 value 都是 int基本類型 TIntIntMap intMap = new TIntIntHashMap(); intMap.put(1, 3); intMap.put(1, 4); intMap.put(5, 2); intMap.put(0, 0); for(int key:intMap.keys()){ System.out.println(key + " : " + intMap.get(key)); }}

4.Trove的三個優勢

相比jdk原生的集合類有三個優勢:

1、更高的性能 2、更底的內存消耗 3、除了實現原生Collections API并額外提供更強大的功能。

5.Trove集合與傳統集合性能及內存對比實例

下面的代碼引用高手的文章: 獲取java程序運行時內存信息

傳統的集合內存消耗情況:

@Testpublic void test(){ Runtime run = Runtime.getRuntime(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + (run.totalMemory()-run.freeMemory()) ); run.gc(); System.out.println("開始時內存使用量 -> time: " + (new Date())); long startMem = run.totalMemory() - run.freeMemory(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + startMem ); //key 和 value 都是 Integer Map<Integer,Integer> map = new HashedMap(); for(int i=0;i<50000;i++){ map.put(i, i); } System.out.println("結束時內存使用量 -> time: " + (new Date())); long endMem = run.totalMemory()-run.freeMemory(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + endMem ); System.out.println("真實內存使用情況 -> memory difference:" + (endMem-startMem));}

打印結果:

memory> total:126877696 free:110287808 used:16589888開始時內存使用量 -> time: Mon Feb 06 15:07:46 SGT 2017memory> total:126877696 free:123137696 used:3740000結束時內存使用量 -> time: Mon Feb 06 15:07:46 SGT 2017memory> total:126877696 free:117288400 used:9589296真實內存使用情況 -> memory difference:5849296

Trove內存消耗情況:

@Testpublic void test(){ Runtime run = Runtime.getRuntime(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + (run.totalMemory()-run.freeMemory()) ); run.gc(); System.out.println("開始時內存使用量 -> time: " + (new Date())); long startMem = run.totalMemory() - run.freeMemory(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + startMem ); //key 和 value 都是 int基本類型 TIntIntMap intMap = new TIntIntHashMap(); for(int i=0;i<50000;i++){ intMap.put(i, i); } System.out.println("結束時內存使用量 -> time: " + (new Date())); long endMem = run.totalMemory()-run.freeMemory(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + endMem ); System.out.println("真實內存使用情況 -> memory difference:" + (endMem-startMem));}

打印結果:

memory> total:126877696 free:109727408 used:17150288開始時內存使用量 -> time: Mon Feb 06 15:04:24 SGT 2017memory> total:126877696 free:123137840 used:3739856結束時內存使用量 -> time: Mon Feb 06 15:04:24 SGT 2017memory> total:126877696 free:118912704 used:7964992真實內存使用情況 -> memory difference:4225136

傳統的集合占用內存是:

真實內存使用情況 -> memory difference:5849296

Trove集合占用內存是:

真實內存使用情況 -> memory difference:4225136

6.Trove我們項目的遺憾

Trove集合確實挺好用,但是我們公司框架并未集成進來,只能看著眼饞,不知道公司的架構師有沒有特別的用意。

7.Trove集合的性能建議

對于項目性能有潔癖的猿兒們,可以利用Trove集合進行性能優化

讀書感悟

來自大冰《乖,摸摸頭》

沒人告訴過我,很多人一輩子只能遇見一次,擦肩而過就是杳然一生。沒有什么過不去,只是再也回不去 哭什么哭 乖,摸摸頭。不要那么孤獨,請相信,這個世界上真的有人在過著你想要的生活 愿你我帶著最微薄的行李和最豐盛的自己在時間流浪。情意這東西,一見如故容易,難得是來日方長的陪伴。人們懶得付出和交流,只熱衷于引領和表達,微博和微信上每天都可以刷出成堆的心靈雞湯人生感悟,無數人在轉發,卻不知有幾人能真正做到知行合一。雖然年輕,但也知道交友不能結交不三不四的人,所以我的朋友都很二。女人容顏逝去要十年,男人貶值只在一瞬間。會心疼人的姑娘都是好姑娘。一門心思地浪跡天涯和一門心思地朝九晚五,又有什么區別呢?真牛B的話,去平衡好工作和旅行的關系,多元的生活方式永遠好過狗熊掰棒子。職場女人先是進化成男人,接著是鐵人,然后是超人。這個世界上的大部分傳奇,不過是普普通通的人們將心意化作了行動而已。

經典故事

【師父問:如果你要燒壺開水,生火到一半時發現柴不夠,你該怎么辦?有的弟子說趕快去找,有的說去借,有的說去買。師父說:為什么不把壺里的水倒掉一些呢?世事總不能萬般如意,有舍才有得!】

大神文章

【1】一個快速、輕量級 Collection 庫 Trove 【2】開源的高性能Java集合:GNU Trove介紹 【3】Java 快速、輕量級 Collection 類的集合GNU Trove 【4】trove4j高性能Java集合庫 【5】性能觀察: Trove 集合類 【6】獲取java程序運行時內存信息

其他

如果有帶給你一絲絲小快樂,就讓快樂繼續傳遞下去,歡迎點贊、頂、歡迎留下寶貴的意見、多謝支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产+成+人+亚洲欧洲| 国产99久久久欧美黑人| 欧美日韩在线影院| 国产精品久久久久不卡| 欧美激情奇米色| 久久久久这里只有精品| 91精品啪在线观看麻豆免费| 国产精品日韩久久久久| 亚洲精选在线观看| 91av福利视频| 最新亚洲国产精品| 中文字幕在线看视频国产欧美| 国产精品丝袜一区二区三区| 色偷偷偷综合中文字幕;dd| 狠狠做深爱婷婷久久综合一区| 韩国精品美女www爽爽爽视频| 久久久久久亚洲精品不卡| 中文字幕日韩欧美在线视频| 欧美午夜美女看片| 大荫蒂欧美视频另类xxxx| 国产亚洲在线播放| 日韩在线观看网址| 日韩精品欧美国产精品忘忧草| 国产精品91免费在线| 久久精品99无色码中文字幕| 国产精品久久久久9999| 91精品久久久久久久久中文字幕| 精品国产一区二区三区在线观看| 国产成人精品视| 色中色综合影院手机版在线观看| 亚洲一区二区在线| 久久伊人精品天天| 亚洲第一天堂av| 91精品国产高清久久久久久久久| 亚洲久久久久久久久久久| 色妞色视频一区二区三区四区| 国产不卡精品视男人的天堂| 久久久这里只有精品视频| 日韩亚洲一区二区| 7m第一福利500精品视频| 亚洲va欧美va在线观看| 久久成人av网站| 成人欧美一区二区三区黑人| 91精品久久久久久综合乱菊| 欧美性高潮在线| 亚洲欧美一区二区激情| 欧美多人爱爱视频网站| 在线视频欧美性高潮| 啊v视频在线一区二区三区| 久久国产天堂福利天堂| 日韩在线观看免费高清完整版| 色偷偷噜噜噜亚洲男人的天堂| 久久激情五月丁香伊人| 亚洲成人激情图| 久久99热精品这里久久精品| 亚洲欧洲日产国产网站| 国产精自产拍久久久久久蜜| 精品日韩美女的视频高清| 亚洲精品一区二区网址| 亚洲精品久久久久久下一站| 97在线精品视频| 不卡在线观看电视剧完整版| 日韩欧美在线国产| 色综合久久天天综线观看| 97精品国产97久久久久久春色| 久久这里只有精品99| 亚洲欧美日韩中文在线| 国产精品福利久久久| 亚洲国产成人爱av在线播放| 日韩精品极品视频免费观看| 国产97在线观看| 久久久久久久久久婷婷| 色偷偷综合社区| 欧洲成人免费aa| 高跟丝袜欧美一区| 久久99热这里只有精品国产| 久久69精品久久久久久国产越南| 国产成人一区二区在线| 麻豆国产精品va在线观看不卡| 国产精品吊钟奶在线| 伦理中文字幕亚洲| 欧美高清自拍一区| 91国在线精品国内播放| 伊人亚洲福利一区二区三区| 欧美做受高潮1| 97成人精品区在线播放| 亚洲成人av片| 日韩精品免费一线在线观看| 国产婷婷色综合av蜜臀av| 中文字幕精品国产| 欧美裸体男粗大视频在线观看| 日韩国产精品亚洲а∨天堂免| 欧美激情视频给我| 日韩a**站在线观看| 精品国产区一区二区三区在线观看| 欧美成人精品不卡视频在线观看| 欧洲s码亚洲m码精品一区| 最近的2019中文字幕免费一页| 91禁国产网站| 午夜精品久久久久久久99热浪潮| 色悠悠久久88| 国产一区二区三区在线看| 欧美麻豆久久久久久中文| 国产精品伦子伦免费视频| 日日骚久久av| 亚洲国产精品yw在线观看| 亚洲免费一级电影| 北条麻妃一区二区在线观看| 丁香五六月婷婷久久激情| 人人澡人人澡人人看欧美| 国产亚洲欧洲高清一区| 91国内免费在线视频| 久久久久久亚洲| 国产精品美女视频网站| 久久精品精品电影网| 国产精品pans私拍| 国产成人精品一区二区三区| 91av视频在线| 欧美大尺度激情区在线播放| 亚洲伊人第一页| 欧美日韩视频在线| 欧美性感美女h网站在线观看免费| 国产精品一区二区三区毛片淫片| 亚洲第一精品自拍| 中日韩美女免费视频网站在线观看| xxx成人少妇69| 久久精彩免费视频| 不卡av日日日| 久久精品在线视频| 91精品视频在线播放| 色婷婷综合成人| 久久人人爽人人爽人人片av高清| 欧美日韩国产黄| 国产精品一区二区三| 91大神福利视频在线| 色综合色综合网色综合| 亚洲国产成人久久| 欧美精品18videos性欧| 欧美激情一区二区三区高清视频| 亚洲激情在线观看视频免费| 色老头一区二区三区在线观看| 大桥未久av一区二区三区| 中文精品99久久国产香蕉| 亚洲国产97在线精品一区| 欧美日韩不卡合集视频| 中文字幕精品www乱入免费视频| 亚洲欧美日韩国产中文专区| 久久影视电视剧凤归四时歌| 亚洲电影在线看| www.亚洲一区| 国产精品女主播| 性色av一区二区三区免费| 久久精品美女视频网站| 亚洲欧美国产精品专区久久| 亚洲美女黄色片| 97人人爽人人喊人人模波多| 中文字幕一精品亚洲无线一区| 欧美诱惑福利视频| 国产在线精品成人一区二区三区| 91久久久久久久久久| 福利二区91精品bt7086| 国产精品久久久久久久午夜| xvideos国产精品| 亚洲第一视频网站|