मैं जावा में 2d सरणी कैसे सॉर्ट करूंगा? [डुप्लिकेट]

Nov 19 2020

तो मैं एक 2d सरणी जावा में है कि एक स्ट्रिंग है

String a[][] = new String[3][4]
a[0][0] = "John";
a[0][1] = "Doe";
a[0][2] ="B";
a[0][3] ="999";
a[1][0] ="Bob";
a[1][1] ="Smith";
a[1][2] ="Q";
a[1][3] ="420";
a[2][0] ="Name";
a[2][1] ="Here";
a[2][2] ="T";
a[2][3] ="123";

मैं वर्णानुक्रम में पंक्तियों को क्रमबद्ध करने के बारे में कैसे जाऊंगा?

मैंने कोशिश की Arrays.sort(a), लेकिन यह सिर्फ त्रुटियों को वापस फेंक दिया। और मुझे लगता है कि यह और अधिक जटिल होने वाला है।

संपादित करें: आउटपुट होना चाहिए

बॉब स्मिथ क्यू 420 जॉन डो बी 999 नाम यहाँ टी 123

मेरे पास पहले से ही इसे ठीक से काम करने के लिए प्रिंट करने के लिए कोड है, बस इसे पंक्तियों द्वारा वर्णानुक्रम में क्रमबद्ध करने की आवश्यकता है।

जवाब

3 RohanKumar Nov 19 2020 at 07:38

यदि आप केवल पंक्तियों को क्रमबद्ध करना चाहते हैं, तो मुझे लगता है कि यह इस तरह किया जा सकता है:

Arrays.sort(a, (o1, o2) -> {
    String firstO1Element = o1[0];
    String firstO2Element = o2[0];
    return firstO1Element.compareTo(firstO2Element);
});

यह निम्न आउटपुट देता है:

Bob Smith Q 420 
John Doe B 999 
Name Here T 123 
Laugslander Nov 19 2020 at 07:33

आप इस समस्या को धाराओं के साथ हल कर सकते हैं:

String[] result = Arrays.stream(a)
        .map(inner -> String.join(" ", inner))
        .sorted()
        .toArray(String[]::new);
LuthermillaMuculadosReis Nov 19 2020 at 07:45

इसे इस्तेमाल करे

    Arrays.sort(a, (b, c) -> b[0] - c[0]);