2011-04-17 7 views
5

मेरा प्रश्न नीचे जैसा ही है, लेकिन उत्तर बहुत अस्पष्ट है और मुझे समझ में नहीं आता कि इसके साथ कैसे जाना है। sort a List<Tuple> from highest to lowest यदि आप बेहतर विवरण में वर्णन कर सकते हैं कि इसे कैसे किया जाए तो इसकी सराहना की जाएगी। धन्यवादफ़ील्ड में से किसी एक के आधार पर एक टुपल सॉर्ट करना

+1

कृपया आपके पास कोड पोस्ट करें, और क्या काम नहीं कर रहा/जिसे आप समझ नहीं सकते हैं। – Mat

उत्तर

7

कोशिश इस उदाहरण मैं आपके लिए बनाया चलाने के लिए और लगता है कि क्या चल रहा है करने के लिए:

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Comparator; 
import java.util.List; 

public class Tuple<R, S, T> 
{ 

private R name; 
private S data; 
private T index; 

public Tuple(R r, S s, T t) 
{ 
    this.name = r; 
    this.data = s; 
    this.index = t; 
} 

public static void main(String[] args) 
{ 
    List<Tuple<String, int[], Integer>> tuples = new ArrayList<Tuple<String, int[], Integer>>(); 
    // insert elements in no special order 
    tuples.add(new Tuple<String, int[], Integer>("Joe", new int[] { 1 }, 2)); 
    tuples.add(new Tuple<String, int[], Integer>("May", new int[] { 1 }, 1)); 
    tuples.add(new Tuple<String, int[], Integer>("Phil", new int[] { 1 }, 3)); 

    Comparator<Tuple<String, int[], Integer>> comparator = new Comparator<Tuple<String, int[], Integer>>() 
    { 

     public int compare(Tuple<String, int[], Integer> tupleA, 
       Tuple<String, int[], Integer> tupleB) 
     { 
      return tupleA.getIndex().compareTo(tupleB.getIndex()); 
     } 

    }; 

    Collections.sort(tuples, comparator); 

    for (Tuple<String, int[], Integer> tuple : tuples) 
    { 
     System.out.println(tuple.getName() + " -> " + tuple.getIndex()); 
    } 

} 

public R getName() 
{ 
    return name; 
} 

public void setName(R name) 
{ 
    this.name = name; 
} 

public S getData() 
{ 
    return data; 
} 

public void setData(S data) 
{ 
    this.data = data; 
} 

public T getIndex() 
{ 
    return index; 
} 

public void setIndex(T index) 
{ 
    this.index = index; 
} 

} 
+0

धन्यवाद, यह बहुत उपयोगी था – hypereact

0

सामान्य जवाब वहाँ दिया गया उत्तर की तुलना में और कुछ नहीं है। किसी सूची को सॉर्ट करने के लिए, आपको या तो अपनी सूची तत्वों को एक कैननिकल ऑर्डरिंग (यानी तुलनात्मक इंटरफ़ेस को कार्यान्वित करना) की आवश्यकता होती है, या एक तुलनात्मक है जो सॉर्ट एल्गोरिदम की तुलना करता है। फिर आप वास्तविक काम करने के लिए Collections.sort का उपयोग कर सकते हैं।

संबंधित मुद्दे