精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java中不常用的但是很好用的開發小技巧,省事就完了!

開發 前端
關于 BigDecimal 的加減乘除,了不起在這里就不再一一的去給大家說了,畢竟這都是非常基礎的內容,我們來說說需要大家掌握的有用的方法。

其實干 Java 開發,必然離不開一些計算,比如如果你現在工作是服務與銀行,那么就會對金額這些計算非常敏感,所以就會經常用到 BigDecimal ,如果你入職的是其他行業的公司,可能用的就相對沒這么多,今天了不起就來給大家分項一下那些不怎么常用,但是非常有用的方法。

BigDecimal

關于 BigDecimal 的加減乘除,了不起在這里就不再一一的去給大家說了,畢竟這都是非常基礎的內容,我們來說說需要大家掌握的有用的方法。

我們先來看一段代碼:

BigDecimal b1= new BigDecimal(0.1);
System.out.println(b1);

大家可以猜一下這個執行的結果會是什么內容呢?

結果是 0.1 么?如果不是 0.1 的話,那么執行輸出的話,會出現什么內容,如果你知道,那么恭喜你,如果你不知道的話,那么就得認真學習一下拉。

結果顯而易見,肯定不是 0.1 。

我們看看他的執行結果是什么內容,然后再來說,應該使用什么方式。

0.1000000000000000055511151231257827021181583404541015625

當看到這個內容的,很多人恍然大悟,一眼就看出來,精度丟失了,所以導致了這種情況的發生,成這種問題的原因是 0.1 這個數字計算機是無法精確表示的,送給 BigDecimal 的時候就已經丟精度了.double類型 那么我們應該怎么去處理這個 double 類型的參數呢?

其實很簡單,方式有兩種,第一種:

BigDecimal bigDecimal = new BigDecimal("0.1");
System.out.println(bigDecimal);

第二種:

BigDecimal bigDecimal1 = BigDecimal.valueOf(0.1);
System.out.println(bigDecimal1);

實際上,在本質上,這兩個方法并沒有區別,因為。valueOf 在實現上,就是轉成了一個字符串。

BigDecimal 當中的 valueOf 中是把浮點數轉換成了字符串來構造的 BigDecimal,因此避免了問題。

源碼如下:

圖片

compareTo

這個方法我們經常用到,用來比較 BigDecimal 的,在 BigDecimal 中使用 equals 可能會導致結果錯誤,BigDecimal 中提供了 compareTo 方法,在很多時候需要使用 compareTo 比較兩個值。如下所示:

BigDecimal b1 = new BigDecimal("10.0");
        BigDecimal b2 = new BigDecimal("10.00");
        System.out.println(b1.equals(b2));
        System.out.println(b1.compareTo(b2));

我們肯定遇到過這種,用 compareTo 比較的時候,自己臆想的和代碼執行的,肯定不一樣,于是就有了自己實驗的過程。

出現此種結果的原因是,equals不僅比較了值是否相等,還比較了精度是否相同。示例中,由于兩個值的精度不同,所有結果也就不相同。而 compareTo 是只比較值的大小。返回的值為-1(小于),0(等于),1(大于)。

List

說到 List 絕對不陌生,甚至天天在用,List 轉數組,應該怎么操作呢?

其實很簡單,就是 toArray。

toArray

List<String> list = new ArrayList<>();

String[] strings = list.toArray(new String[list.size()]);

兩個方法,不帶參數的 toArray 就是直接調用 Arrays.copyOf(elementData, size),將 List 中的元素對象的引用裝在一個新的生成數組中。

帶參數的則是會返回指定類型(必須為 List 元素類型的父類或本身)的數組對象,如果 a.length 小于 List 元素個數就直接調用 Arrays 的 copyOf() 方法進行拷貝并且返回新數組對象,新數組中也是裝的 List 元素對象的引用,否則先調用System.arraycopy()將 List 元素對象的引用裝在a數組中,如果a數組還有剩余的空間,則在 a[size] 放置一個 null,size 就是 list 中元素的個數,這個 null 值可以使得 toArray(T[] a) 方法調用者可以判斷 null 后面已經沒有 list 元素了.

其實在業務中,我們更多的都是直接使用第二個,第一個五參數的方法,很多時候都是作為測試來存在的。

JDK8的小玩意

其實了不起更想說的,還是 JDK8 中的一些肖操作,他會精簡我們的代碼,而且,邏輯也更加的清晰,為什么這么說,因為現在百分之八九十的公司都還是在使用 JDK8 ,升級版本的,還并不是那么的多,畢竟很少有公司會吧之前的項目隨便更換某些必要的依賴的版本號,除非迫不得已。

flatMap

其實這個方法,是真的不常用,因為我們用到的,很多都是 forEach ,或者 filter ,或者 map 這些都是我們比較常用的。

而 flatMap 相當于 map+flat,通過 map 把每一個元素替換為一個流,然后展開這個流。比如,我們要統計所有訂單的總價格,可以有兩種方式:

就是 Order 里面有一個 Detail 的信息,而這個 Order 是一個 List  而 Detail 也是一個 List,就比如下面

public class Order {

private String id;

private List<Detail> details;

}

public class Order {

private String productId;

private Double productPrice;

private Integer productQuantity;

}

如果我們想要統計訂單總價,如果 Order 表中已經存在了這個價格這塊的內容了,那當然好,如果沒有,那么就得去匯總詳情了,不是么?

//求和使用flatMap
orders.stream().flatMap(order -> order.getDetails().stream()).mapToDouble(item -> item.getProductQuantity() * item.getProductPrice()).sum();


//求和使用flatMapToDouble
orders.stream().flatMapToDouble(order ->order.getDetails().stream().mapToDouble(item -> item.getProductQuantity() * item.getProductPrice())).sum();

其實,了不起覺得,JDK8 中才是真的有很多了不起的內容,再比如我們統計list中的數據,已經不在需要自己去做for循環來進行比對了,而是直接通過方法來獲取。

//獲取最大
Integer id = userList.stream().map(User::getId).max(Integer::compareTo).get();
//獲取最小
Integer id1 = userList.stream().map(User::getId).min(Integer::compareTo).get();
//獲取id數量
long count = userList.stream().map(User::getId).count();
//總和
int sum = userList.stream().mapToInt(User::getId).sum();
//獲取平均值
double d = userList.stream().mapToInt(User::getId).average().getAsDouble();

分組統計

//分組統計
    Map<String, Long> map = userList.stream().collect(Collectors.groupingBy(User::getName, Collectors.counting()));
  //分組 Collectors.groupingBy(屬性名)
 Map<Integer, List<Person>> map = list.stream().collect(Collectors.groupingBy(Person::getAge));
    //將名字全轉換為大寫
    List<String> list = userList.stream().map(User::getName).map(String::toUpperCase).collect(Collectors.toList());
    //獲取忽略第一個并取前幾條數據
    List<User> list1 = userList.stream().skip(1).limit(2).collect(Collectors.toList());
    //distinct() 去重;collect(Collectors.toList())。封裝成集合
    List<User> collect = userList.stream().distinct().collect(Collectors.toList());

關于這些不常用,但是非常有用的內容,你學會了么?

責任編輯:武曉燕 來源: Java極客技術
相關推薦

2021-07-06 11:25:20

Chrome前端代碼

2019-04-18 09:42:31

JavaScript前端開發

2020-12-14 08:30:02

JavaScript開發代碼

2020-12-15 11:34:35

持續集成工具

2011-04-08 17:03:19

Java架構

2011-07-11 10:24:09

PHP

2021-07-02 10:20:15

HTML前端技巧

2021-02-20 22:09:48

Web開發HTML

2021-11-08 10:45:07

Python命令工具

2015-02-04 10:32:57

Objective-CSwift

2009-06-15 15:54:53

Java中Cookie

2011-01-19 09:07:20

Thunderbird

2023-12-19 13:30:00

JavaScrip原生API函數

2022-02-10 09:56:33

git revertgit resetGit

2020-01-31 18:03:49

編碼開發代碼

2020-01-30 18:00:18

編程語言軟件人工智能

2022-02-17 13:58:38

Linux技巧文件

2020-11-11 08:22:40

前端開發JavaScript

2015-10-15 17:25:30

窩牛裝修

2022-01-18 10:15:18

Vue性能優化前端
點贊
收藏

51CTO技術棧公眾號

久久久久国产一区二区三区四区| 久久综合图片| 亚洲а∨天堂久久精品9966| 人妻av中文系列| 黄色软件在线| 国产美女在线精品| 91精品国产91久久久久| 美国美女黄色片| 亚洲一区二区三区四区电影| 色综合久久九月婷婷色综合| 一区二区三视频| 天堂在线观看av| 久久97超碰国产精品超碰| 国语自产精品视频在免费| 国产123在线| 成功精品影院| 欧美肥妇毛茸茸| 黄色免费观看视频网站| av在线看片| 国产欧美日韩三区| 国产精品日韩欧美一区二区三区| 在线观看亚洲黄色| 亚洲电影在线| 久久天天躁夜夜躁狠狠躁2022| 亚洲制服丝袜在线播放| 精品国产伦一区二区三区观看说明| 精品露脸国产偷人在视频| 干日本少妇视频| 大胆av不用播放器在线播放| 成人一区在线观看| 国产精品尤物福利片在线观看| 国产成人亚洲欧洲在线| 综合天堂av久久久久久久| 在线播放日韩欧美| 国产精品边吃奶边做爽| 国产精品17p| 777精品伊人久久久久大香线蕉| 男人的天堂99| 日韩理论视频| 精品国产户外野外| 热99这里只有精品| 污污网站在线看| 亚洲人成网站精品片在线观看| 日韩电影大全在线观看| 日韩福利一区二区| 99久久精品免费观看| 97久久精品午夜一区二区| 一级淫片免费看| 免费一区二区视频| 国产精品日日摸夜夜添夜夜av| 青青操免费在线视频| 极品裸体白嫩激情啪啪国产精品| 久久99青青精品免费观看| 人人澡人人澡人人看| 亚洲电影影音先锋| 久久视频免费在线播放| 国产一区二区播放| 亚洲综合中文| 美女性感视频久久久| 9999热视频| 亚洲综合五月| 欧美激情啊啊啊| 精品无码久久久久久久| 一区免费在线| 欧美亚洲日本黄色| 中文字幕在线看人| 日本欧美韩国一区三区| 国产精品视频网站| 99久久国产免费| 国产91精品露脸国语对白| 国产精品污www一区二区三区| 日本精品一二区| 国产视频一区二区在线观看| 亚洲电影一二三区| 成人国产免费电影| 亚洲国产另类av| 男人操女人逼免费视频| 亚洲第一影院| 69久久99精品久久久久婷婷| 波多野结衣电影免费观看| 国产精品丝袜在线播放| 精品伊人久久97| 中文字幕精品亚洲| 欧美成人日韩| 国产99久久精品一区二区永久免费 | 亚洲欧美综合另类中字| 国产黄色大片免费看| 久久久久久久久99精品大| 久久久久国产精品免费| 天天综合久久综合| 国产福利一区二区三区视频 | 欧美色综合一区二区三区| 日本一区二区综合亚洲| 国产传媒久久久| 成人影院av| 欧美一区二区三区免费视频 | 国产精品久久久久久久久免费丝袜| 亚洲第一综合网站| a欧美人片人妖| 欧美一区三区二区| 亚洲激情视频小说| 亚洲天天影视网| 国产精品www色诱视频| 99在线精品视频免费观看软件| 91网站在线播放| 成年人视频大全| 欧美va视频| 欧美大胆人体bbbb| 亚洲第一视频区| 亚洲福利精品| 91性高湖久久久久久久久_久久99| 性感美女一级片| 亚洲欧美经典视频| 欧美一级黄色影院| 欧美wwwwww| 美日韩在线视频| 在线观看免费视频一区| 久久免费电影网| 国产乱子伦精品视频| 性欧美video另类hd尤物| 日韩精品高清视频| 国产在线拍揄自揄拍| 国内久久精品视频| 久久综合社区| 亚洲人免费视频| 国产91av视频| 国产一区二区导航在线播放| 欧美一区1区三区3区公司| 成人在线高清免费| 91精品国产综合久久久蜜臀图片 | 黄色av一区二区| 9人人澡人人爽人人精品| 懂色av粉嫩av蜜臀av| 日本在线中文字幕一区二区三区 | 无遮挡aaaaa大片免费看| 午夜精品剧场| 亚洲永久在线观看| 黄网站在线免费| 欧美精品tushy高清| 91导航在线观看| 日本欧美大码aⅴ在线播放| 欧美动漫一区二区| 美女福利一区二区 | 国产精品va在线观看视色| 欧美在线视频你懂得| 亚洲第一香蕉网| 亚洲欧美清纯在线制服| 免费电影一区| 日韩成人av电影| 亚洲欧美成人网| 亚洲永久精品一区| 国产精品天美传媒沈樵| 亚洲欧美国产日韩综合| 91麻豆精品国产91久久久平台| 国产精品亚洲аv天堂网| 三区四区在线视频| 8x8x8国产精品| 黑人巨大精品一区二区在线| 国产精品亚洲专一区二区三区 | 亚洲欧美大片| 视频一区二区精品| 久久精品资源| 欧美日韩xxx| 少妇一区二区三区四区| 欧美小视频在线| a级黄色免费视频| 韩国一区二区在线观看| 人妻无码一区二区三区四区| 动漫av一区| 欧美最顶级的aⅴ艳星| 福利在线午夜| 欧美一级一区二区| www.天天色| 欧美激情一区二区三区四区| 红桃视频 国产| 国产精品大片| 欧美精品一区二区三区四区五区| 成人在线观看免费播放| 久久精品男人天堂| 无码精品黑人一区二区三区 | 欧美黄色小视频| 免费人成在线观看网站| 欧美日韩一区成人| 欧美精品久久久久性色| 26uuu国产电影一区二区| 岛国毛片在线播放| 亚洲日本黄色| 亚洲欧洲日韩精品| 99ri日韩精品视频| 国产精品免费久久久| 午夜av在线播放| 亚洲最新av网址| 亚洲第一大网站| 91国在线观看| 久久久久香蕉视频| 欧美国产激情二区三区| 亚洲精品鲁一鲁一区二区三区 | 又黄又爽又色的视频| 亚洲伊人网站| 久久久成人精品一区二区三区 | 男女啊啊啊视频| 国产精品欧美一区二区三区| 五月天激情小说| 久久国产精品无码网站| 欧美亚洲精品一区二区| 99久久夜色精品国产亚洲狼 | 深夜做爰性大片蜜桃| 久久高清国产| www.日本少妇| 日韩久久精品网| 欧美日本亚洲| 风间由美性色一区二区三区四区| 国产精品视频内| 奇米777日韩| 欧美极品少妇全裸体| 三区四区电影在线观看| 国产一区二区av| 五月天激情婷婷| 欧美r级在线观看| 在线观看毛片av| 欧美网站大全在线观看| 五月天婷婷导航| 黑人精品xxx一区一二区| 九九热国产精品视频| 国产精品高潮久久久久无| 中文字幕一区二区人妻在线不卡| 成人免费观看av| 亚欧精品在线视频| 激情综合一区二区三区| 欧美精品性生活| 日韩视频久久| 隔壁人妻偷人bd中字| 在线观看国产精品入口| 综合视频免费看| 精品av一区二区| 人偷久久久久久久偷女厕| 免费欧美激情| 日本免费一区二区三区| 亚洲成人一品| 精品91免费| 欧美日韩精品一区二区三区在线观看| 福利视频一区二区三区| 亚洲天堂av资源在线观看| www国产亚洲精品| 亚洲伊人影院| 国产精品入口免费| 久久成人福利| 裸体丰满少妇做受久久99精品| 五月天亚洲一区| 欧美性大战久久久久| 视频一区欧美| 日韩精品久久久毛片一区二区| 精品久久成人| 中文字幕日韩一区二区三区不卡 | 国产又黄又大又粗视频| 西西人体一区二区| 日韩手机在线观看视频| 热久久久久久久| 午夜免费福利视频在线观看| 国产一区二区三区免费观看| 制服下的诱惑暮生| 菠萝蜜视频在线观看一区| 北岛玲一区二区| 久久久亚洲高清| 青青青视频在线播放| 亚洲欧洲中文日韩久久av乱码| 免费在线观看一级片| 亚洲国产日韩精品| 国产嫩bbwbbw高潮| 欧美日韩精品免费| 精品人妻伦一区二区三区久久| 精品国产一区二区精华| 三级在线电影| 综合136福利视频在线| 午夜影院免费在线| 欧美亚洲国产精品| 日本在线一区二区| 国产精品视频免费一区二区三区| 亚洲国产网址| 天天成人综合网| 在线日本高清免费不卡| 乌克兰美女av| 国产成人综合亚洲网站| 免费观看av网站| 亚洲人一二三区| 一区二区三区福利视频| 欧美精品欧美精品系列| 免费看日韩av| www.亚洲成人| 涩涩视频在线免费看| 国产日韩欧美视频| 乱中年女人伦av一区二区| 亚洲高清资源综合久久精品| 亚洲婷婷免费| 国产视频1区2区3区| 成人精品免费视频| 九九这里只有精品视频| 黑人巨大精品欧美一区二区一视频| 91麻豆国产在线| 国产网站欧美日韩免费精品在线观看 | 亚洲一级大片| 色播五月综合| 亚洲黄网站黄| 国产精品探花在线播放| 久久久av毛片精品| 久久精品欧美一区二区| 欧美精品久久天天躁| 黄色在线小视频| 欧美极品少妇与黑人| 成人51免费| 亚洲精品一区二区三区四区五区 | 日韩专区第一页| 久久精品成人欧美大片| 成人直播视频| 国产精品有限公司| 伊人久久大香线| 91小视频网站| 国产日韩v精品一区二区| 国产欧美日韩另类| 日韩欧美不卡一区| 蜜芽在线免费观看| 国产精品爽黄69| 久久不见久久见国语| 国产精品裸体瑜伽视频| 国产不卡免费视频| 97成人资源站| 7878成人国产在线观看| 午夜伦理在线| 国产精品久久久久aaaa九色| 亚洲天堂日韩在线| 鲁一鲁一鲁一鲁一澡| 成人精品小蝌蚪| 国产精品成人免费一区二区视频| 日韩欧美一二三四区| www.欧美日本韩国| 亚洲va久久久噜噜噜| 婷婷综合伊人| 久久aaaa片一区二区| 亚洲精品美国一| 99久久久国产精品无码免费| 久久久av网站| 精品欧美视频| 4444亚洲人成无码网在线观看| 国产精品一区二区在线播放| 亚洲av无码一区二区三区在线| 欧美精品自拍偷拍动漫精品| 日本中文字幕在线2020| 国产一区二区丝袜| 91精品福利| 日本在线不卡一区二区| 亚洲va欧美va国产va天堂影院| 日本高清视频免费看| 91av视频在线| 国产成人影院| 中文字幕国内自拍| 成人欧美一区二区三区黑人麻豆 | 午夜探花在线观看| 国产精品一区免费视频| 国产无遮挡又黄又爽在线观看| 精品国产一区二区三区不卡 | 国产人妻黑人一区二区三区| 午夜av区久久| 国际av在线| 成人淫片在线看| 欧美日韩视频| 久久无码人妻精品一区二区三区| 色香蕉久久蜜桃| 欧美天天影院| 不卡视频一区| 亚欧成人精品| 久久一级免费视频| 欧美大片在线观看一区二区| 少妇视频一区| 亚洲人成影视在线观看| 国产乱淫av一区二区三区 | av色综合久久天堂av色综合在| 超碰国产精品久久国产精品99| 亚洲看片一区| 色屁屁草草影院ccyy.com| 欧美一区二区播放| 日韩在线伦理| 手机看片日韩国产| 99国产欧美另类久久久精品| 中文字幕日韩经典| 久久91超碰青草是什么| 九一亚洲精品| 亚洲国产综合av| 日本久久电影网| 污污网站在线看| 午夜精品短视频| 国产成人精品免费视频网站| 亚洲欧美自拍视频| 久久不射热爱视频精品| 亚洲涩涩av| 性一交一黄一片| 欧美日韩一区二区电影| 少妇淫片在线影院| 男女裸体影院高潮| 国产视频视频一区| 欧美一区二区三区成人片在线|