2016-11-02 6 views
-5

Wie sortiert man ein ArrayList<int[]> jedes Element in der Liste ist im Grunde ein Tupel. So zum Beispiel werden sich einige Elemente wie:Wie sortiere ich eine ArrayList <int[]>?

[5,10] [8,6] [9,5]

mag ich die ArrayList<int[]> die zweite Zahl in dem Tupel sortieren. Wenn also sortiert die es würde wie folgt aussehen:

[9,5] [8,6] [5,10]

+4

Warum haben Sie Java und Python für diesen Tag? Und noch wichtiger: Zeigen Sie Ihren Code-Versuch dafür. StackOverflow ist * kein * Code-Schreibdienst. – idjaw

+0

Welchen Wert soll es sortiert haben? Index 0 oder Index 1? –

+0

Überprüfen Sie diese http://stackoverflow.com/questions/4699807/sort-arraylist-of-array-in-java –

Antwort

0

Wenn Sie Java 8 verwenden:

list.sort(Comparator.comparingInt(i -> i[1])); 
0

Vergleicher Mit

import java.util.*; 

public class sorter{ 

public static void main(String []args){ 

    List<int []> list= new ArrayList<int []>(); 
    //[5,10] [8,6] [9,5] 
    list.add(new int[]{5,10}); 
    list.add(new int[]{8,6}); 
    list.add(new int[]{9,5}); 

    for(int [] a:list){ 
    System.out.println(a[0]+"--"+a[1]); 


    } 
    System.out.println("********************"); 
    Collections.sort(list, new IntArrayComparator()); 
    for(int [] a:list){ 
    System.out.println(a[0]+"--"+a[1]); 


    } 
} 
} 


class IntArrayComparator implements Comparator<int[]> { 
@Override 
public int compare(int[] ia1, int[] ia2) { 
    int e1 = ia1[1]; 
    int e2 = ia2[1];; 

    if (e1 > e2) { 
     return 1; 
    } else if (e2>e1) { 
     return -1; 
    } else { 
     return 0; 
    } 
} 
} 
Verwandte Themen