- java list 排序:按照元素的属性进行排序
1.方法一:
元素实现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());
}
}
然后就可以直接调用:
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());
}
这种方法已经将比较的属性固定写死了,只能比较一种属性。
2.方法二:重载Collections.sort方法:
Collections.sort(procInfos,new Comparator<RunningAppProcessInfo>(){
@Override
public int compare(RunningAppProcessInfo lhs, RunningAppProcessInfo rhs) {
return Integer.compare(lhs.pid, rhs.pid);
}
});
根据重载方法中比较的属性不同,可以根据不同的属性排序。
这里pid是int型,所以使用的Integer.compare方法,相似的方法有:
Double.compare
,Float.compare
,Character.compare
等。
TextView添加滚动条
mTextview.setMovementMethod(new ScrollingMovementMethod());