1. 程式人生 > 其它 >java日常小筆記

java日常小筆記

技術標籤:java

日常使用java程式碼方法

lambda表示式

使用流分頁:

List<String> midNumbers = new ArrayList<>();
// 分組 
Long limit = (midNumbers.size() + 100 - 1) / 100;
List<List<String>> splitList = Stream.iterate(0, n -> n + 1)
                .limit(limit)
.parallel() .map(num -> { return midNumbers.stream().skip(num * 100).limit(100).parallel().collect(Collectors.toList()); }).collect(Collectors.toList()); int size = splitList.size(); for (int i = 0; i < size; i++){ List<String> numbers =
splitList.get(i); // todo }

獲取集合某個屬性集合:

List<String> xx = 物件集合.stream().map(e -> String.valueOf(e.getXxxx())).collect(toList());

集合去重:

List<String> xxx = xxxs.stream().distinct().collect(toList());

兩個物件集合根據某欄位去重複:

List<xx> lits1;
List<xx> lits2;
List<xx>
distinct = lits1.parallelStream().filter(item1 -> !list2.contains(item1.getXxxx())).collect(Collectors.toList());

根據某個屬性獲取物件:

List<XX> cc;
XX xx = cc.stream().filter(item -> String.valueOf(item.getXxx()).equals("字串")).findAny().orElse(null);

對某欄位去重:

List<XXX> unique = XX.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()
                            -> new TreeSet<>(Comparator.comparing(XXX::getXxx))),ArrayList::new));

根據物件分組 轉換Map:

List<XXX> ccc;
Map<String, List<XXX>> xxx = ccc.stream().collect(Collectors.groupingBy(XXX::getXxxx));

非同步處理方法呼叫

使用Thread():

  // 非同步處理
        new Thread(() -> {
        //呼叫方法
        }

使用 @Async註釋:

/**
 *非同步處理方法
 */
@Async
public void xxx(Object obj){
  //處理內容
  }

使用RestTemplate下載檔案到指定路徑

           //定義請求頭的接收型別
            RequestCallback requestCallback = request -> request.getHeaders()
                    .setAccept(Arrays.asList(MediaType.APPLICATION_OCTET_STREAM, MediaType.ALL));
            //對響應進行流式處理而不是將其全部載入到記憶體中
            String finalFilePath = filePath;//指定路徑
            RestTemplate restTemplate = new RestTemplate();
            restTemplate.execute(url, HttpMethod.GET, requestCallback, clientHttpResponse -> {
                Files.copy(clientHttpResponse.getBody(), Paths.get(finalFilePath));
                return null;
            });