電子商務網(wǎng)站建設與管理試題免費網(wǎng)站在線客服軟件
💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。
- 推薦:kwan 的首頁,持續(xù)學習,不斷總結,共同進步,活到老學到老
- 導航
- 檀越劍指大廠系列:全面總結 java 核心技術點,如集合,jvm,并發(fā)編程 redis,kafka,Spring,微服務,Netty 等
- 常用開發(fā)工具系列:羅列常用的開發(fā)工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 數(shù)據(jù)庫系列:詳細總結了常用數(shù)據(jù)庫 mysql 技術點,以及工作中遇到的 mysql 問題等
- 懶人運維系列:總結好用的命令,解放雙手不香嗎?能用一個命令完成絕不用兩個操作
- 數(shù)據(jù)結構與算法系列:總結數(shù)據(jù)結構和算法,不同類型針對性訓練,提升編程思維,劍指大廠
非常期待和您一起在這個小小的網(wǎng)絡世界里共同探索、學習和成長。💝💝💝 ?? 歡迎訂閱本專欄 ??
博客目錄
- 1.匯總數(shù)據(jù)
- 2.分組求和
- 3.內(nèi)存分頁
- 4.判斷集合為空
- 5.并行處理
- 6.獲取字符中數(shù)據(jù)
- 7.判斷相同的元素
- 8.list 是否重復
- 9.數(shù)據(jù)去重
1.匯總數(shù)據(jù)
homeSkuTotal.setTotal7SalQty(tags.stream().mapToInt(item -> Objects.nonNull(item.getTotal7SalQty()) ? item.getTotal7SalQty() : 0).sum());
if (CollectionUtils.isNotEmpty(homeSkuTotalOrr)) {homeSkuTotalOrr.stream().mapToInt(AdsDayOrrDO::getOrderNotArriveQty).sum();
}
2.分組求和
分組求最大值再求和
if (CollectionUtils.isNotEmpty(homeSkuTotalOrr)) {final Collection<Optional<AdsDayOrrDO>> values = homeSkuTotalOrr.stream().collect(Collectors.groupingBy(AdsDayOrrDO::getProductKey, Collectors.maxBy(Comparator.comparing(AdsDayOrrDO::getPeriodSdate)))).values();homeSkuTotalDTO.setOrderNotArriveQty(values.stream().mapToInt(item -> item.get().getOrderNotArriveQty()).sum());homeSkuTotalDTO.setReplenishNotArriveQty(values.stream().mapToInt(item -> item.get().getReplenishNotArriveQty()).sum());}
3.內(nèi)存分頁
pageBean.setTotalElements(tags.size());pageBean.setTotalPages(tags.size() / pageQuery.getSize() + (tags.size() % pageQuery.getSize() == 0 ? 0 : 1));pageBean.setSize(pageQuery.getSize());pageBean.setNumber(pageQuery.getPage());pageBean.setContent(tags.stream().skip((pageQuery.getPage() - 1) * pageQuery.getSize()).limit(pageQuery.getSize()).collect(Collectors.toList()));pageBean.setNumberOfElements(CollectionUtils.isNotEmpty(pageBean.getContent()) ? pageBean.getContent().size() : 0L);
4.判斷集合為空
CollectionUtils.isNotEmpty({a,b}): true
<dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version>
</dependency>
5.并行處理
@Test
public void test15() {// 調(diào)用 parallelStream 方法即能并行處理List<String> names = properties.parallelStream().filter(p -> p.priceLevel < 4).sorted(Comparator.comparingInt(Property::getDistance)).map(Property::getName).limit(2).collect(Collectors.toList());System.out.println(JSON.toJSONString(names));
}
6.獲取字符中數(shù)據(jù)
//博客瀏覽量未達成
final int x = message.indexOf("需要");
String str = message.substring(x + 2, x + 7);
for (int i = str.length() - 1; i >= 0; i--) {char lastChar = str.charAt(i);if (Character.isDigit(lastChar)) {// 字符不是數(shù)字,舍去最后一位字符str = str.substring(0, i + 1);break;}
}
7.判斷相同的元素
public class Java8_06_Stream_Same {public static void main(String[] args) {// 老師集合List<Teacher> teachers = Arrays.asList(new Teacher(1L, "張三"),new Teacher(2L, "李四"),new Teacher(3L, "王五"),new Teacher(4L, "趙六"));// 學生集合List<Student> students = Arrays.asList(new Student(5L, "張三"),new Student(6L, "李四"),new Student(7L, "小紅"),new Student(8L, "小明"));// 求同時出現(xiàn)在老師集合和學生集合中的人數(shù),name相同即視為同一個人int size = (int) teachers.stream().map(t -> students.stream().filter(s -> Objects.nonNull(t.getName()) && Objects.nonNull(s.getName()) && Objects.equals(t.getName(), s.getName())).findAny().orElse(null)).filter(Objects::nonNull).count();// 求同時出現(xiàn)在老師集合和學生集合中人的name集合,name相同即視為同一個人List<String> names = teachers.stream().map(t -> students.stream().filter(s -> Objects.nonNull(t.getName()) && Objects.nonNull(s.getName()) && Objects.equals(t.getName(), s.getName())).findAny().orElse(null)).filter(Objects::nonNull).map(Student::getName).collect(Collectors.toList());System.out.println("相同的人數(shù):" + size);System.out.println("相同的人姓名集合:" + names);}
}
8.list 是否重復
public class Java8_13_stream_count {public static void main(String[] args) {List<Integer> list = new ArrayList() {{add(1);add(2);add(1);}};long count = list.stream().distinct().count();boolean isRepeat = count < list.size();System.out.println(count);//輸出2System.out.println(isRepeat);//輸出true}
}
9.數(shù)據(jù)去重
//方式一
List<Long> distinctIdList = idList.stream().distinct().collect(Collectors.toList());
//方式二
final List<ProductAllexinfoV1DTO> invSqlSkus = tags.stream().filter(t -> t.getInvQty() > 0 || t.getSalQty() > 0).collect(Collectors.toList());homeSkuTotal.setProductTotal(CollectionUtils.isEmpty(invSqlSkus) ? 0 :invSqlSkus.stream().map(ProductAllexinfoV1DTO::getProductKey).collect(Collectors.toSet()).size());
覺得有用的話點個贊
👍🏻
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!😄😄😄💘💘💘如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!🌙🌙🌙