第一种是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())
}
}
1.Arrays.sort(int[]a)
这种形式是对一个数复组的所有元素进制行排序,并且是知按从小到大的顺序。道
2.案例
public
class
Test
{
public
static
void
main(String[]
args)
{
int[]
a
=
{9,
8,
7,
2,
3,
4,
1,
0,
6,
5}
Arrays.sort(a)
for(int
i
=
0
i
<
a.length
i
++)
{
System.out.print(a[i]
+
"
")
}
}
}
//运行结果如下:
//0
1
2
3
4
5
6
7
8
9
根据你这要求,只有一个办法,但是有点约束:import java.util.Arrays
import java.util.Collections
public class Test {
public static void main(String[] args) {
//注意,只能用对象类型,不可以使用简单类型 如int[] num则报错
Integer[] num = {5,8,3,9,1}
//如果是num是List或 Set,则用Collections.sort(num,Collections.reverseOrder())
Arrays.sort(num,Collections.reverseOrder())
for(int i=0i<num.lengthi++){
System.out.println(num[i])
}
}
}