2010-01-20 2 views
2

Как вы относитесь к ArrayList в алфавитном или цифровом формате? Я не уверен, как будет работать метод сортировки массива по алфавиту или численному.Array List Сортировка

Спасибо!

+0

Это не совсем понятно, что вы ищете. Пожалуйста, дополните. Объясните проблему с примером –

ответ

2

[Collections.sort] [1] будет сортировать по умолчанию. Это лексический (алфавитный) для строк и числовых чисел для числовых типов данных. Вы также можете указать свой собственный компаратор, если вам нужен нестандартный заказ.

Например:

ArrayList list = new ArrayList(); 
list.add(1); 
list.add(10); 
list.add(-1); 
list.add(5); 

Collections.sort(list); 

[1]: http://java.sun.com/javase/6/docs/api/java/util/Collections.html#sort(java.util.List, java.util.Comparator)

+1

Возможно, вы спрашиваете, КАК реализовать такой механизм сортировки, но это обычно не то, что вы хотите сделать в деловом мире;). Если это домашнее задание, пометьте его как таковое и будьте более конкретным. –

3

В Collections.sort методы позволяют сортировать список с Comparator, который реализует свой особый метод сортировки (например, алфавитный или цифровой).

0
Collections.sort(list,new Comparator() { 

    int compare(T o1, T o2) { 
     // implement your own logic here 
    } 


    boolean equals(Object obj) { 
     // implement your own logic here 
    } 
} 
1

Обычно используется метод Collections.sort() для сортировки простого списка массивов.

Вот пример.

Сначала осуществите интерфейс Comparable, а затем переопределите метод compareTo.

public class Student implements Comparable { 
    private String studentname; 
    private int rollno; 
    private int studentage; 

    public Student(int rollno, String studentname, int studentage) { 
     this.rollno = rollno; 
     this.studentname = studentname; 
     this.studentage = studentage; 
    } 

    @Override 
    public int compareTo(Student comparestu) { 
     int compareage=((Student)comparestu).getStudentage(); 
    } 

    @Override 
    public String toString() { 
     return "[ rollno=" + rollno + ", name=" + studentname + ", age=" + studentage + "]"; 
    } 

} 

Теперь мы можем очень хорошо назвать Collections.sort на ArrayList

import java.util.*; 
public class ArrayListSorting { 

    public static void main(String args[]){ 
     ArrayList<Student> arraylist = new ArrayList<Student>(); 
     arraylist.add(new Student(100, "Nuwan", 19)); 
     arraylist.add(new Student(200, "Kamal", 18)); 
     arraylist.add(new Student(205, "Sunil", 20)); 

     Collections.sort(arraylist); 

     for(Student str: arraylist){ 
      System.out.println(str); 
     } 
    } 
}