邢臺網(wǎng)站建設(shè)與制作官網(wǎng)排名優(yōu)化方案
今天是中小學(xué)開學(xué)時間,亦是9月的開始,繼續(xù)努力。
今日收獲較大的有四個地方,先說這四點(diǎn)。
1、IDEA列操作
使用場景:需要批量將Excel表格里的數(shù)據(jù)插入到數(shù)據(jù)庫中,此時需要寫大量的insert SQL語句。
比如像這樣的,密碼麻麻的,可能要插入幾百條數(shù)據(jù)。
一條一條寫,要寫到天荒地老。所以就需要IDEA里的列操作。
具體操作是:
按住Alt,找到要批量操作的位置,然后鼠標(biāo)向下拖動。
但是有特殊情況,當(dāng)上下不一齊的時候,這個方法就會失效。比如,這里,我要修改他們的年齡,但是按Alt然后往下拖動的時候,光標(biāo)總是錯位。
即使你按方向鍵,->,也會錯位。
你可以這樣操作:
如果每列開始位置不一樣,先從整齊的那一列開始,按alt往下拖,然后ctrl + shift +左/右箭頭或ctrl + w。跳到目標(biāo)位置,然后按右鍵盤,停在那里,然后再ctrl + shift +左/右箭頭,選擇某個模塊的信息,修改。
然后ctrl + shift +左/右箭頭或ctrl + w,跳到目標(biāo)位置
然后再ctrl + shift +左/右箭頭,選擇某個模塊的信息,修改。
2、Lambda表達(dá)式加強(qiáng)版用法
以xx為分組,對象作為list。
Map<String, List<User>> something = list.stream().collect(Collectors.groupingBy(User::getName));
還可以xx為分組,然后進(jìn)一步抽取具體的某個屬性為list。
//這里是假代碼,僅作示意
Map<String, List<name>> groupingByNameAge= list.stream().collect(Collectors.groupingBy(People::getName,Collectors.mapping(People::getFriends,Collectors.toList())));
這里之所以不用tomap,是因?yàn)?#xff1a;
使用Collectors.groupingBy方法可以處理多對一的分組情況,即可以將多個具有相同鍵的元素放在一個列表中。而使用Map方法只能處理一對一的映射關(guān)系,相同的鍵會覆蓋之前的值。
3、標(biāo)志位 沒有返回
某天我寫過巧用標(biāo)志位,做標(biāo)記,20230830工作心得:巧用標(biāo)記位和For循環(huán)遍歷但是在那里,我沒有返回標(biāo)志位,導(dǎo)致這個標(biāo)志位沒有更新,沒有傳遞,相當(dāng)于白寫。
for (String phone : xxxGroupByPhone.keySet()) {Boolean isTransmitted = false;List<UserClue> phoneClue = xxxGroupByPhone.get(phone);for (UserClue userClue : phoneClue) {isTransmitted = pushClueItem(userClue,isTransmitted);} }private Boolean pushClue(UserClue userClue,Boolean isTransmitted ) {if(xx){return true;};if(xx){return false;} }
執(zhí)行順序:
4、善用Optional避免空指針
Optional<Order> optional = OrderRepository.findFirstByOrderNo(orderNo);
? ? ? ? return optional.map(this::decryOrder).orElse(null);
查詢訂單號為 orderNo 的第一個訂單,并掉用this::decryOrder方法,將其加密后返回。如果沒有找到匹配的訂單,則返回 null。