Как вы относитесь к ArrayList
в алфавитном или цифровом формате? Я не уверен, как будет работать метод сортировки массива по алфавиту или численному.Array List Сортировка
Спасибо!
Как вы относитесь к ArrayList
в алфавитном или цифровом формате? Я не уверен, как будет работать метод сортировки массива по алфавиту или численному.Array List Сортировка
Спасибо!
[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)
Возможно, вы спрашиваете, КАК реализовать такой механизм сортировки, но это обычно не то, что вы хотите сделать в деловом мире;). Если это домашнее задание, пометьте его как таковое и будьте более конкретным. –
В Collections.sort методы позволяют сортировать список с Comparator, который реализует свой особый метод сортировки (например, алфавитный или цифровой).
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
}
}
Обычно используется метод 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);
}
}
}
Это не совсем понятно, что вы ищете. Пожалуйста, дополните. Объясните проблему с примером –