1. 程式人生 > >使用 java8 實現List到Array的轉換

使用 java8 實現List到Array的轉換

開發中需要呼叫第三方的庫,有些 API 的入參要求是 double[] 陣列,程式根據使用者在頁面的輸入,計算出一個 double[] 作為返回值的結果,然後呼叫這個 API。

往往無法預先知道這個 double[] 陣列的大小,就不能直接定義一個 double[] 的變數,只能藉助 List,先將資料放入 List, 再轉換為 double[] 陣列。這個很簡單,一個 for 迴圈就搞定了,但是使用 java 8 的 stream 特性就能讓程式碼更優雅些。下面是我程式中的例子:

List<Double> factorValueList = new ArrayList<>();
for (Integer defId : input.getCohortDefIds()) {
	for (double d : calcVarValues(defId, factorVar)) {
		factorValueList.add(d);
	}
}
double[] factorVarValues = factorValueList.stream().mapToDouble(Double::doubleValue).toArray();

List 本身有個 API, 是帶引數的 toArray(),但是在某些情況下,轉型後 Array 編譯沒問題,執行時報錯,具體什麼錯我忘了,下次發現了再來更新文章。

為保險起見,還是使用 stream 最可靠,程式碼也好看。

相關推薦

使用 java8 實現List到Array的轉換

開發中需要呼叫第三方的庫,有些 API 的入參要求是 double[] 陣列,程式根據使用者在頁面的輸入,計算出一個 double[] 作為返回值的結果,然後呼叫這個 API。 往往無法預先知道這個 double[] 陣列的大小,就不能直接定義一個 double[] 的變數

python實現中文轉換url編碼的方法

pos true clas url編碼 python 10.10 前端 美的 http 本文實例講述了python實現中文轉換url編碼的方法。分享給大家供大家參考,具體如下: 之前做上傳圖片編輯的時候,文件路勁中出現中文,會變成以下這種格式: http://192

java8實現各種List操作

spa 實現 max groupby 處理 present 最小 erl IV 利用java8新特性,可以用簡潔高效的代碼來實現一些數據處理。 定義1個Apple對象: public class Apple { private Integer id; pri

java8實現spark streaming的wordcount

概念這裡就不說了,從案例開始,慣例,hellowrod,哦不,wordcount。 要計算從一個監聽 TCP socket 的資料伺服器接收到的文字資料(text data)中的字數。 主體程式碼部分跟spark相差不大,畢竟DStream是RDD產生的模板(或者說類)。

【樂優商城】Nginx安裝配置 -反向代理實現轉換

 一、bind() to 0.0.0.0:80 failed   原因:         是由於Windows10系統預設把80埠給佔用了,而nginx的埠也是80,所以說報錯。 2018/10/27 05:40:15 [e

Python 3 實現數字轉換成Excel列名(10進位制到26進位制的轉換函式)

背景:   最近在看一些Python爬蟲的相關知識,講爬取的一些資料寫入到Excel表中,當時當列的數目不確定的情況下,如何通過遍歷的方式講爬取的資料寫入到Excel中。 開發環境: Python 3   openpyxl  解決方案:Excel列名其實就是一個26進位制的

js實現word轉換為html

前言 最近接到一個需求,實現上傳一個word文件,然後將該word轉換成html丟給服務端存上。進行技術調研後發現有三種方法可以實現這個功能:ActiveXObject、docx2html、mammoth。 IE的 ActiveXObject var oWordApp=new ActiveX

js如何實現字串轉換成陣列

        var string = "a,b,c";         var stringArr= string.split(",");      &

smallpdf最新版如何實現PDF轉換

大家都知道PDF格式特殊,PDF是adobe公司出品方便列印的文件,意為“行動式文件格式”,是由Adobe Systems用於與應用程式、作業系統、硬體無關的方式進行檔案交換所發展出的檔案格式,我們在網路上看到的文獻、或者資料等大都是各個網站進過原始檔處理後上傳為PDF檔案進行儲存的。PDF

java8 httpclient NameValuePair轉換14行程式碼一行搞定!

工作中,我們常常會通過httpclient呼叫一些三方提供的api, 進行引數傳遞的時候會用NameValuePair[ ] 於是我們同事寫了一個方法封裝一下 NameValuePair,將map中用  引數key ,引數值value,做一個轉換 如下: p

java8實現6行程式碼搞定遞迴刪除多級非空目錄

在review 程式碼的時候,看到同事寫的程式碼刪除多級非空目錄,寫的很長一串,太複雜,就自己寫了一個,分享給大家: package com.test.java8; import java.io.File; import java.util.Arrays; import java.uti

Java8 實現計算兩個日期之間的天數

這幾天給專案組同事做程式碼評審,剛好看到一段求兩個日期之間的天數,看完後覺得寫的太複雜(採用獲取兩個日期的毫秒數,相減後再除以一天的毫秒數得到天數),剛好專案用的是java8,就想到用java8 新的Java日期/時間API 實現一個更加簡潔的方法 package test;

angular6實現物件轉換陣列物件

1 使用表單獲取到資料以後,是物件型別的資料如下圖    而後臺需要返回的資料是這種key:value的形式傳入 2   廢話不多說直接上程式碼(程式碼只擷取部分,僅供參考跑不起來,最後又一個小demo可以執行) public discountArr

使用Jacob實現Word轉換Html

前言        源於一個專案的需求,使用者上傳Word檔案後要能及時在網頁上檢視檔案內容,類似於QQ郵箱的附件檢視,QQ郵箱使用的是永中的產品工具。自己做當然是首選不要錢自己寫程式碼就能搞定的。網上搜索後找到了Jacob,下面記錄一

Java8 實現計算兩個日期之間的相隔多少周

查了很多資料,沒有直接獲取兩個日期之間相隔多少周。 迂迴戰術:獲取兩個日期之間的天數。除以7等於相隔多少周。 參考連結:https://blog.csdn.net/kevin_mails/article/details/78440696 package com.test; impo

java8實現列表去重,java8的stream 和lambda的使用例項

不管我們做安卓開發還是javaweb開發,有時候我們會對列表進行去重操作,所謂的列表資料重複,通常體現在列表集合資料中的id屬性相同。當然我們通過普通的方式也可以達到去重的效果。但是藉助java8新特性可以很方便的實現列表去重,下面就寫個小demo簡單的演示一下。

Python實現字串轉換成浮點型數字

使用Python實現float函式 from functools import reduce digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def cha

java8 實現map以value值排序

import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.stream.Collector; import java.util.stream.C

(計蒜客)利用棧實現表示式轉換並求得結果

#include <iostream> #include <string> #include <cassert> using namespace std; template<typename Type> class Stack

QML中用javascript 實現中文轉換拼音

專案需要, 今天整理了一下.在QML呼叫javascrit將中文漢字轉換成拼音. 感覺執行效率低. 下面是主要程式碼. 具體程式碼請參考QMLPinyin import "./pinyinjs/