2013-12-11 21 views
10

Mam kod i użyłem listy do przechowywania danych. Chcę posortować dane, a następnie czy istnieje sposób sortowania danych, czy muszę sortować je ręcznie, porównując wszystkie dane?Jak sortować listę <Integer>?

public class tes 
{ 
    public static void main(String args[]) 
    { 
     List<Integer> lList = new ArrayList<Integer>(); 
     lList.add(4); 
     lList.add(1); 
     lList.add(7); 
     lList.add(2); 
     lList.add(9); 
     lList.add(1); 
     lList.add(5); 
     for(int i=0; i<lList.size();i++) 
     { 
      System.out.println(lList.get(i)); 
     } 
    } 
} 
+6

'Collections.sort (lList);'. Jeśli chcesz sortować według porządku malejącego, powinieneś sprecyzować niestandardowy komparator. Btw _ "lista sortowania java" _ na Google naprawdę da ci wynik znacznie szybciej niż zadając pytanie tutaj. –

Odpowiedz

11

Można użyć Collections do sortowania danych:

public class tes 
{ 
    public static void main(String args[]) 
    { 
     List<Integer> lList = new ArrayList<Integer>(); 

     lList.add(4);  
     lList.add(1); 
     lList.add(7); 
     lList.add(2); 
     lList.add(9); 
     lList.add(1); 
     lList.add(5); 

     Collections.sort(lList); 

     for(int i=0; i<lList.size();i++) 
     { 
      System.out.println(lList.get(i)); 
     } 

    } 
} 
1

Użyj sortowania API klasy do sortowania.

Collections.sort(list); 
2

Po prostu użyj Collections.sort(yourListHere) tutaj, aby posortować.

Możesz przeczytać więcej o kolekcjach z here.

0

Oto rozwiązanie:

public class tes 
{ 
    public static void main(String args[]) 
    { 
     List<Integer> lList = new ArrayList<Integer>(); 
     lList.add(4); 

     lList.add(1); 
     lList.add(7); 
     lList.add(2); 
     lList.add(9); 
     lList.add(1); 
     lList.add(5); 

     Collections.sort(list); 
     for(int i=0; i<lList.size();i++) 
     { 
      System.out.println(lList.get(i)); 
     } 
    } 
} 
20

porządku rosnącym:

Collections.sort(lList); 

porządku malejącym:

Collections.sort(lList, Collections.reverseOrder()); 
1

Aby posortować w kolejności rosnącej:

Collections.sort(lList); 

I odwrotnej kolejności:

Collections.reverse(lList); 
+2

'Collections.reverse (lList);' po prostu odwróci elementy na liście, a nie sortuje w porządku malejącym. –

0

można wykorzystać metodę użytkową w Collections klasy public static <T extends Comparable<? super T>> void sort(List<T> list) lub

public static <T> void sort(List<T> list,Comparator<? super T> c) 

Zobacz interfejsy Comparable i Comparator, aby uzyskać większą elastyczność podczas sortowania obiektu.