/*一般Collections.sort()用来排序泛型为Integer的集合,若要排序其他类型,必须要
让该类实现Comparable<T>接口
*/
public class day implements Comparable<day> {
private int x;
private int y;
public day(int x,int y) {
// TODO Auto-generated constructor stub
this.x=x;
this.y=y;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "("+x+","+y+")";
}
public static void main(String[] args) {
List<day> list=new ArrayList<>();
list.add(new day(4, 2));
list.add(new day(1, 2));
list.add(new day(3, 2));
System.out.println(list);
Collections.sort(list);
System.out.println(list);
/**
* 注意在迭代过程中不可以用list.remove(元素)去删除该元素
* 若想删除该元素可用迭代器的remove()方法
*
* 对集合运用for each遍历时等效于迭代器,也不可运用集合的remove(元素)方法
* for (day day : list) {
}
*/
Iterator<day> iterator=list.iterator();
while (iterator.hasNext()) {
iterator.next();
iterator.remove();
}
System.out.println(list);
}
/**
* 自定义比较规则
* 当返回值>0时,当前对象比参数对象大
* 当返回值<0时,当前对象比参数对象小
* 当返回值=0时,当前对象等于参数对象
* @param o
* @return
*/
@Override
public int compareTo(day o) {
//定义比较规则
int len=this.x*this.x+this.y*this.y;
int olen=o.x*o.x+o.y*o.y;
return len-olen;
}
}
关于集合迭代器以及Collections.sort(元素)的一点事
最新推荐文章于 2020-12-04 09:01:44 发布