List排序,这里介绍两种排序:
1.Collections.sort()排序:
假如List集合中放的是Menu对象。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public class Menu{
private int id;
private String name;
private int seq; //自定义排序字段
//构造函数、getter、setter省略.......
}
List<Menu> menus= new ArrayList<Menu>();
menus.add( new Menu( 1 , "系统菜单" , 2 ));
menus.add( new Menu( 2 , "我的菜单" , 5 ));
menus.add( new Menu( 3 , "我的菜单" , 3 ));
//排序Collections.sort(menus, new ComparatorMenu());
//比较器类
class ComparatorMenu implements Comparator<Menu> {
public int compare(Menu m1, Menu m2) {
//比较的字段,这里是按照自定义排序字段进行升序排列,如果要降序,对调两个比较参数即可。
return m1.getSeq().compareTo(m2.getSeq());
}
}
//输出结果
1 , "系统菜单" , 2
3 , "我的菜单" , 3
2 , "我的菜单" , 5
|
2.冒泡排序
1
2
3
4
5
6
7
8
9
10
|
for ( int i = 0 ; i < menus.size() - 1 ; i++) {
for ( int j = 1 ; j < menus.size() - i; j++) {
Menu menu;
if ((menus.get(j - 1 ).getSeq().toString()).compareTo(menus.get(j).getSeq()) > 0 ) {
menu = allTree.get(j - 1 );
menus.set((j - 1 ), menus.get(j));
menus.set(j, menu);
}
}
}
|
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:https://my.oschina.net/ht896632/blog/628443