java.util.Collections 类提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。
- 排序(Sort)
使用sort方法可以根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的。
【示例】Sort升序排序
class Person implements Comparable<Person> {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person o) {
return this.age - o.age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
public class SortDemo {
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 19));
list.add(new Person("李四", 40));
list.add(new Person("王五", 34));
list.add(new Person("赵六", 23));
list.add(new Person("罗七", 33));
// 对元素进行排序
Collections.sort(list);
Iterator<Person> iter = list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}
- 混排(Shuffling)
混排算法所做的正好与 sort 相反,它打乱在一个 List 中可能有的任何排列的踪迹,也是就是对元素进行随机排列。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card 对象的一个 List .另外,在生成测试案例时,它也是十分有用的。
【示例】Shuffling随机排序
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
// 随机排序
Collections.shuffle(list);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
- 反转(Reverse)
使用Reverse方法可以根据元素的自然顺序 对指定列表按降序进行排序。
【示例】Reverse倒序排序
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
// 反序排序
Collections.reverse(list);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
- 替换所有的元素(Fill)
使用指定元素替换指定列表中的所有元素。
【示例】Fill替换所有的元素
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
// 反序排序
Collections.fill(list, 222);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。