[ad_1]
सरणी और खंड आकार को देखते हुए। मुझे वांछित आउटपुट उत्पन्न करना है
सरणी = [1,2,3,4,5]
खंड आकार = 1
वांछित आउटपुट [1] [2] [3] [4] [5]
मैंने क्या प्रयास किया है:
मैंने IntStream का उपयोग करने का प्रयास किया है
public static List<int[]> chunk(int[] input, int chunkSize) { return IntStream.iterate(0, i -> i + chunkSize) .limit((long) Math.ceil((double) input.length / chunkSize)) .mapToObj(j -> Arrays.copyOfRange(input, j, j + chunkSize > input.length ? input.length : j + chunkSize)) .collect(Collectors.toList());//how to fix this line error on new }
फ़ंक्शन कॉल मैं मुख्य विधि में इस प्रकार कर रहा हूं:
सूची
list.forEach(splitArray -> System.out.println(Arrays.toString(splitArray)));
समाधान 1
इसे करने के कई तरीके हो सकते हैं. यदि जगह की कोई समस्या नहीं है तो मैं पसंद करूंगा Arrays.copyOfRange()
इसमें, copyOfRange()
मूल सरणी के समान प्रकार की एक नई सरणी बनाता है, और मूल सरणी की निर्दिष्ट सीमा के आइटम को एक नई सरणी में शामिल करता है।
वाक्य – विन्यास:
public static T[] copyOfRange(T[] original, int from, int to) // original – the array from which a range is to be copied // from – the initial index of the range to be copied, inclusive // to – the final index of the range to be copied, exclusive
अधिक जानकारी: Java.util.Arrays.copyOfRange() विधि[^]
उदाहरण उपयोग:
int[] arr1 = new int[] {15, 10, 45, 55}; int chunk = 2; // provided as input for(int i=0; i<arr1.length; i+=chunk){ System.out.println(Arrays.toString(Arrays.copyOfRange(arr1, i, Math.min(arr1.length,i+chunk)))); }
समाधान 2
/********************************************* *****************************
जीडीबी ऑनलाइन में आपका स्वागत है।
दुनिया में कहीं से भी ऑनलाइन कोड, संकलन, चलाएँ और डिबग करें।
******************************************** *****************************/
आयात java.util.*;
कक्षा मुख्य
{
सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग)[] तर्क) {
int यहाँ[] मूल = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10};
पूर्णांक विभाजन आकार = 3;
/* अपेक्षित उत्पादन
[0, 1, 2]
[3, 4, 5]
[6, 7, 8]
[9]
*/
सूची
list.forEach(splitArray -> System.out.println(Arrays.toString(splitArray)));
}
सार्वजनिक स्थैतिक सूची
int k=0;
ArrayList
int यहाँ[] एआर = शून्य;
int लंबाई=सरणी.लंबाई;
पूर्णांक आकार=स्प्लिटआकार;
for(int i=0;i
“` }
“`अरे[k]= “सरणी[i];
“के++;
“`>=विभाजन आकार || i==array.length-1 ){
क=0;
परिणाम.जोड़ें(arr);
लंबाई=लंबाई-विभाजितआकार;
यदि(लंबाई
[ad_2]
コメント