日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

failed building wheel for termcolor_for循环优化,List分组,多线程的写法

發布時間:2024/10/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 failed building wheel for termcolor_for循环优化,List分组,多线程的写法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1

開發中遇到 List 的集合根據某一個字段分組的情況:

Map<String,List<User>> templateDate = new HashMap<>(16);for (User map : list) { String code = map.getSex();/*根據性別分組*/ List<User> listMap = templateDate.computeIfAbsent(code, k -> new ArrayList<>());
listMap.add(map);

}

2

在開發中遇到 雙層for循環 的情況 該如何優化呢?

List<User> listOne = sgService.selectOneUser();
List<User> listTwo = sgService.selectOneUser();
List<User> listResult1 = new ArrayList<>();// 未優化的時候 嵌套for循環 時間復雜度 O(n^2)for (User u1:listOne){for (User u2:listTwo){if (u1.getAge().equals(u2.getAge()) && u1.getName().equals(u2.getName())) {listResult1.add(u2);}
}
}// 優化后 List集合 轉 map 時間復雜度 O(n)List<User> listResult2 = new ArrayList<>();
Map<String, User> mapCGVO = listOne.stream().
collect(Collectors.toMap(item -> (item.getAge()+"_"+item.getName()), CentralizedGridapprovalInfoVO -> CentralizedGridapprovalInfoVO,(k1, k2)->k2));for (User cne: listTwo) {String key = cne.getAge()+"_"+cne.getName();if (mapCGVO.containsKey(key)) {listResult2.add(cne);}
}

mapCGVO 中的信息為:

3

在開發中遇到 多線程 的時候 需要寫一個線程池

/**
* 多線程的寫法
* corePoolSize 線程數量
* maximumPoolSize 最大線程數
* keepAliveTime 保持心跳時間
* TimeUnit 時間單位
* taskList 線程的集合
* resList 返回結果的集合
*/List<String> resList = new ArrayList<>(3);
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("RepeatPowerCutStatisticThreadPool-%d").build();
ExecutorService executorService = new ThreadPoolExecutor(3, 5, 0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<>(1024),
namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
List<Runnable> taskList = new ArrayList<>(3);
taskList.add(() -> resList.add("線程一的業務"));
taskList.add(() -> resList.add("線程二的業務"));
taskList.add(() -> resList.add("線程三的業務"));
CompletableFuture[] futures = taskList.stream().map(task -> CompletableFuture.runAsync(task, executorService)).toArray(CompletableFuture[]::new);
CompletableFuture.allOf(futures).join();
executorService.shutdown();

有更好的寫法歡迎留言交流!

有更好的寫法歡迎留言交流!

有更好的寫法歡迎留言交流!

總結

以上是生活随笔為你收集整理的failed building wheel for termcolor_for循环优化,List分组,多线程的写法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。