在下面代码中的(1)(2)处可以填写(多选)BC
A. int int
B. Integer Integer
C. String String
D. string string
下列说法中不正确的是:D
A. Comparator接口用于对自定义类进行整体排序
B. Comparator接口可以将Comparator传递给sort方法
C. int compare(T o1,T o2)比较用来排序的两个对象
D. boolean equals(Object obj)指示对象obj是否是“等于”当前对象。此方法不可以被Object类中的equals方法覆盖
关于Comparable接口的说法,以下哪个是错误的C
A. Comparable位于java.lang包
B. 调用sort方法时,需要指定Comparable接口的实现类
C. Comparable接口的抽象方法是 int compareTo(T t)
D. Comparable接口还可以用于数组的排序
二、编程
对英文单词进行排序,效果图如下:
任务
1、给list添加元素
2、输出排序前list中的内容
3、对list中的元素进行排序
4、输出排序后list中的内容
package com.bwj.collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Student {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("orange");
list.add("tomato");
list.add("apple");
list.add("litchi");
list.add("banana");
System.out.println("排序前:" );
for(String s : list) {
System.out.print(s + " ");
}
System.out.println();
System.out.println("排序后:");
Collections.sort(list);
for(String s : list) {
System.out.print(s + " ");
}
}
}
定义一个学生信息类,包括学号,姓名,年龄三个成员变量,然后按名字进行升序排序。(使用Comparator接口)
运行效果图:
package com.bwj.sort;
import java.util.Comparator;
public class Student implements Comparator<StuMessage> {
@Override
public int compare(StuMessage o1, StuMessage o2) {
String s1 = o1.getName();
String s2 = o2.getName();
int i = s1.compareTo(s2);
return i;
}
}
package com.bwj.sort;
public class StuMessage {
private String name;
private int code;
private int age;
StuMessage() {}
public StuMessage(String name, int code, int age) {
this.setAge(age);
this.setCode(code);
this.setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return " [名字=" + name + ", 学号=" + code + ", 年龄=" + age + "]";
}
}
package com.bwj.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
StuMessage s1 = new StuMessage("peter",40,20);
StuMessage s2 = new StuMessage("angel",28,5);
StuMessage s3 = new StuMessage("tom",35,18);
List<StuMessage> StuName = new ArrayList<>();
StuName.add(s1);
StuName.add(s2);
StuName.add(s3);
System.out.println("按名字排序前");
for(StuMessage stu : StuName) {
System.out.println(stu);
}
System.out.println("按名字排序后");
Collections.sort(StuName,new Student());
for(StuMessage stu : StuName) {
System.out.println(stu);
}
}
}
任务:
定义一个员工信息类,包括编号,姓名,工资三个成员变量,要求工资定义为float类型,然后按工资进行降序排序。(使用Comparable接口)
运行效果图:
任务:
package com.bwj.sort;
public class Employee {
private String id;
private String name;
private float salary;
public Employee() {}
public Employee(String id, String name, float salary) {
this.setId(id);
this.setName(name);
this.setSalary(salary);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee [编号=" + id + ", 名字=" + name + ", 薪水=" + salary + "]";
}
}
package com.bwj.sort;
import java.util.Comparator;
public class EmployeeCompare implements Comparator<Employee> {
@Override
public int compare(Employee o1, Employee o2) {
int i1 = (int)o1.getSalary();
int i2 = (int)o2.getSalary();
return i2 - i1;
}
}
package com.bwj.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
Employee e1 = new Employee("emp001","张三",1800.5f);
Employee e2 = new Employee("emp002","李四",2500.4f);
Employee e3 = new Employee("emp003","王五",1600f);
List<Employee> list = new ArrayList<>();
list.add(e1);
list.add(e2);
list.add(e3);
System.out.println("排序前");
for(Employee e : list) {
System.out.println(e);
}
System.out.println("排序后");
Collections.sort(list,new EmployeeCompare());
for(Employee e : list) {
System.out.println(e);
}
}
}