学习笔记:Collections类语法记录
Collections是针对List集合操作的工具类,此类仅包含静态方法。使用该类的方法时,可以类名.方法名
//Collections构造方法
private Collections() {
}
Collections常用方法
- public static <T> void sort(List<T> list, Comparator<? super T> c):将指定的列表按照升序排序
- public static void reverse(List<?> list):反转指定列表中的序列
- public static void shuffle(List<?> list):使用默认的随机源随机排列指定的列表
//Collections常用方法测试
public class CollectionsDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("java");
list.add("刘备");
list.add("张三");
list.add("javaee");
System.out.println(list);
Collections.reverse(list);
System.out.println("list反转后:"+ list);//[javaee, 张三, 刘备, java]
Collections.sort(list);
System.out.println("list排序后:"+ list);//[java, javaee, 刘备, 张三]
Collections.shuffle(list);
}
}
问题
对学生类集合排序时,重写了Comparator方法。还看不懂
public class CollectionsDemo {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<Student>();
//创建学生对象
Student s1 = new Student("linqingxia",32);
Student s2 = new Student("fengqingyang",45);
Student s3 = new Student("liubei",20);
Student s4 = new Student("zhangfei",27);
//把学生添加到集合对象
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
//使用collections 对集合进行排序
//sort(list<T> list,Comparator<? super T> c>
Collections.sort(array, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
//要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母进行排序
int num = s1.getAge() - s2.getAge();
int num2 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;
return num2;
}
});
//6、遍历集合
for(Student s : array){
System.out.println(s.getAge() +"," + s.getName());
}
}
}
网友评论