जावा 8 में आप double
रों की एक सरणी में int
रों के एक 1-आयामी सरणी डाली कर सकते हैं:
double[] singleDimensionDoubleArray =
Arrays.stream(singleDimensionIntArray).asDoubleStream().toArray()
इसलिए मैं लिखा था कि मैं क्या ग्रहण से अधिक पाशन द्वारा एक तेजी से संस्करण होगा पंक्तियों:
int[][] iArray = {
{1, 2,},
{5, 6,}
};
double[][] dArray = new double[iArray.length][];
for (int row = 0; row < iArray.length; row++) {
dArray[row] = Arrays.stream(iArray[row]).asDoubleStream().toArray();
}
मैं बस के बारे में इस उत्तर पोस्ट करने के लिए था, लेकिन मैं कितना यह तेजी से किया गया था कि भोलेपन से अधिक हर तत्व पाशन के बारे में कुछ मीट्रिक पोस्ट था सोचा। यह पता चला है कि यह चारों ओर 10x धीमी था! मैंने इसे शून्य के 10000x1000 सरणी के साथ परीक्षण किया। मुझे लगता है कि यह अतिरिक्त वस्तु निर्माण है जो मंदी का कारण बनता है।
जब तक किसी और अन्यथा साबित कर सकते हैं, मुझे लगता है कि सबसे सरल समाधान वास्तव में सबसे तेज है:
for (int row = 0; row < iArray.length; row++) {
for (int column = 0; column < iArray[0].length; column++) {
dArray[row][column] = (double) iArray[row][column];
}
}
स्रोत
2016-09-14 16:10:51
क्या आपको यकीन है ... ??? – Lion
हाँ। मेरे स्रोत इस विषय पर मेरा स्वयं का शोध हैं। ;) चारों ओर गुगल करने से आपको एक ही निष्कर्ष मिल जाएगा। – Vache
+1। यही एकमात्र रास्ता है। डील। –