第一种是list中的对象实现Comparable接口,如下
public class User implements Comparable<User>{
private String name
private Integer order
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public Integer getOrder() {
return order
}
public void setOrder(Integer order) {
this.order = order
}
public int compareTo(User arg0) {
return this.getOrder().compareTo(arg0.getOrder())
}
}
此时可以直接排序
public static void main(String[] args) {
User user1 = new User()
user1.setName("a")
user1.setOrder(1)
User user2 = new User()
user2.setName("b")
user2.setOrder(2)
List<User>list = new ArrayList<User>()
//此处add user2再add user1
list.add(user2)
list.add(user1)
Collections.sort(list)
for(User u : list){
System.out.println(u.getName())
}
}
第二种方法是根据Collections.sort重载方法来实现,例如:
public static void main(String[] args) {
User user1 = new User()
user1.setName("a")
user1.setOrder(1)
User user2 = new User()
user2.setName("b")
user2.setOrder(2)
List<User>list = new ArrayList<User>()
list.add(user2)
list.add(user1)
Collections.sort(list,new Comparator<User>(){
public int compare(User arg0, User arg1) {
return arg0.getOrder().compareTo(arg1.getOrder())
}
})
for(User u : list){
System.out.println(u.getName())
}
}
用Arrays类sort()对数组元素进行降序排列
import java.util.Arrays
class SortDemo
{
public static void main(String[] args)
{
int[] vec={0,15,-14,45,20,70}
Arrays.sort(vec)
System.out.println("/n")
System.out.println("降序排列:")
for (int i=vec.length-1i>=0 i-- )
{
System.out.print(vec[i]+" ")
}
}
}