दिलचस्प पोस्ट
पाठ फ़ाइल से लाइन पढ़ना और स्ट्रिंग को सदिश में डाल देना? कस्टम विशेषता के लिए ग्राहक पक्ष सत्यापन करें php: कर्ल के साथ html स्रोत कोड प्राप्त करें Mac OS X पर ANDROID_HOME परिवेश चर सेट करना क्यों "स्पष्ट रूप से अनारक्षित विकल्प" बनाते हैं? खाली यूडीपी और टीसीपी पैकेट का आकार? क्या कोई CSS3 एनीमेशन पूरा होने पर एक कॉलबैक है? डिज़ाइन में सीएसएस अनुकूलित स्क्रॉल पट्टी समवर्ती प्रोग्रामिंग और समानांतर प्रोग्रामिंग के बीच अंतर क्या है? मैं mysql में कैस्केड को कैसे हटाऊं? Django 1.7 और डेटा माइग्रेशन के साथ शुरुआती डेटा लोड हो रहा है ऐप पर सफेद स्क्रीन को कैसे ठीक करें? सी # का उपयोग कर किसी श्रेणी में एक यादृच्छिक संख्या का निर्माण करें क्या आपको सर्वर साइड पर सत्यापन करना चाहिए? IOS7 पारगमन नेविगेशन बार में सही रंग प्राप्त करें

java arrays.sort 2d सरणी

इसलिए,

मैं [0] के मूल्यों के आधार पर निम्न सरणी को सॉर्ट करने के लिए देख रहा हूं

double[][] myArr = new double[mySize][2]; 

इसलिए पूर्व के लिए, myArr सामग्री है:

 1 5 13 1.55 12 100.6 12.1 .85 

मैं इसे प्राप्त करना चाहता हूं:

 1 5 12 100.6 12.1 .85 13 1.55 

मैं अपनी खुद की तरह लागू करने के लिए बिना यह करने के लिए देख रहा हूँ हर प्रकार की सहायता का स्वागत है, धन्यवाद।

वेब के समाधान से एकत्रित समाधान "java arrays.sort 2d सरणी"

ओवरलोड किए गए एरेज़ का उपयोग करें # सॉर्ट करें (टी [] ए, कॉपररेटर c) जो दूसरे तर्क के तौर पर तुलनात्मकता लेता है।

 double[][] array= { {1, 5}, {13, 1.55}, {12, 100.6}, {12.1, .85} }; java.util.Arrays.sort(array, new java.util.Comparator<double[]>() { public int compare(double[] a, double[] b) { return Double.compare(a[0], b[0]); } }); 

आपको Comparator<Double[]> एक Comparator<Double[]> को कार्यान्वित करने की आवश्यकता है:

 public static void main(String[] args) throws IOException { final Double[][] doubles = new Double[][]{{5.0, 4.0}, {1.0, 1.0}, {4.0, 6.0}}; final Comparator<Double[]> arrayComparator = new Comparator<Double[]>() { @Override public int compare(Double[] o1, Double[] o2) { return o1[0].compareTo(o2[0]); } }; Arrays.sort(doubles, arrayComparator); for (final Double[] arr : doubles) { System.out.println(Arrays.toString(arr)); } } 

आउटपुट:

 [1.0, 1.0] [4.0, 6.0] [5.0, 4.0] 

जावा 8 में आपका स्वागत है:

 Arrays.sort(myArr, (a, b) -> Double.compare(a[0], b[0])); 

यद्यपि यह एक पुराना धागा है, लेकिन जावा 8 में समस्या को सुलझाने के दो उदाहरण हैं।

पहले स्तंभ द्वारा क्रमबद्ध ([] [0]):

 double[][] myArr = new double[mySize][2]; // ... java.util.Arrays.sort(myArr, java.util.Comparator.comparingDouble(a -> a[0])); 

पहले दो स्तंभों के आधार पर छंटनी ([] [0], [] [1]):

 double[][] myArr = new double[mySize][2]; // ... java.util.Arrays.sort(myArr, java.util.Comparator.<double[]>comparingDouble(a -> a[0]).thenComparingDouble(a -> a[1])); 
 import java.util.*; public class Arrays2 { public static void main(String[] args) { int small, row = 0, col = 0, z; int[][] array = new int[5][5]; Random rand = new Random(); for(int i = 0; i < array.length; i++) { for(int j = 0; j < array[i].length; j++) { array[i][j] = rand.nextInt(100); System.out.print(array[i][j] + " "); } System.out.println(); } System.out.println("\n"); for(int k = 0; k < array.length; k++) { for(int p = 0; p < array[k].length; p++) { small = array[k][p]; for(int i = k; i < array.length; i++) { if(i == k) z = p + 1; else z = 0; for(;z < array[i].length; z++) { if(array[i][z] <= small) { small = array[i][z]; row = i; col = z; } } } array[row][col] = array[k][p]; array[k][p] = small; System.out.print(array[k][p] + " "); } System.out.println(); } } } 

शुभ लाभ

सामान्य समाधान के लिए आप कॉलम कंपैटर का उपयोग कर सकते हैं। क्लास का उपयोग करने के लिए कोड होगा:

 Arrays.sort(myArr, new ColumnComparator(0));