3.15---对引用变量按用户要求的条件排序
来源:互联网 发布:oracle数据库巡检 编辑:程序博客网 时间:2024/05/21 04:21
接口:
package cn.sxt.interface2;
public interface Comparator1 {
int compare(Object obj1, Object obj2);
}
三种比较方式:
package cn.sxt.interface2;
public class StuAgeComp implements Comparator1 {
//比较年龄
@Override
public int compare(Object obj1, Object obj2) {
// TODO Auto-generated method stub
Student s1 = (Student)obj1;
Student s2 = (Student)obj2;
return s1.getAge() - s2.getAge();
}
}
package cn.sxt.interface2;
public class StuScoComp implements Comparator1 {
//比较分数
@Override
public int compare(Object obj1, Object obj2) {
// TODO Auto-generated method stub
Student s1 = (Student)obj1;
Student s2 = (Student)obj2;
if(s1.getScore() > s2.getScore()){
return 1;
}else if(s1.getScore() > s2.getScore()){
return -1;
}else{
return 0;
}
}
}
package cn.sxt.interface2;
public class StuNamComp implements Comparator1 {
//比较姓名
@Override
public int compare(Object obj1, Object obj2) {
// TODO Auto-generated method stub
Student s1 = (Student)obj1;
Student s2 = (Student)obj2;
return s1.getName().compareTo(s2.getName());
}
}
冒泡排序:
package cn.sxt.interface2;
public class ArrayUtil {
public static void sort(Object[] arr, Comparator1 comp){//comp = new StuNamComp;
boolean flag = false;
Object temp;
for(int i = 0; i < arr.length - 1; i++){
flag = false;
for(int j = 0; j < arr.length - 1 - i; j++){
if(comp.compare(arr[j], arr[j+1]) > 0){//arr[j] > arr[j+1]
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(flag == false){
break;
}
}
}
}
学生类:
package cn.sxt.interface2;
public class Student {
String name;
int age;
int score;
public Student(String name, int age, int score) {
super();
this.name = name;
this.age = age;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", score=" + score + "]";
}
public void setScore(int score) {
this.score = score;
}
}
主方法:
package cn.sxt.interface2;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student[] ss = new Student[4];
ss[0] = new Student("lao1", 34, 89);
ss[1] = new Student("lao2", 18, 10);
ss[2] = new Student("lao3", 20, 100);
ss[3] = new Student("lao4", 16, 40);
//创建比较器
//StuScoComp ssc = new StuScoComp();
StuNamComp snc = new StuNamComp();
//StuAgeComp sac = new StuAgeComp();
//将比较器作为参数传进去
ArrayUtil.sort(ss, snc);
for (Student student : ss) {
System.out.println(student.toString());
}
}
}
- 3.15---对引用变量按用户要求的条件排序
- 对三个变量按由小到大顺序排序,要求使用变量的引用
- 对3个函数从小到大排序,使用变量的引用
- SQL:要求查询出用户信息,根据用户发表的信息个数对用户进行排序
- 对三个变量按由小到大的顺序排序。(引用)
- 【指针】【引用作形参】对三个变量排序
- 对临时变量的引用
- “对非共享成员的引用要求对象引用”
- 对条件变量(condition variable)的讨论
- 对条件变量(condition variable)的讨论
- 对线程条件变量的理解
- 对条件变量(condition variable)的讨论
- 对条件变量(condition variable)的讨论
- 输入两个整数,将它们按由大到小的顺序输出。要求使用变量的引用
- 引用值与对文本的规范要求(正则表达式)
- ADT 18对引用的jar有要求
- 定义一个整型变量赋予1~100的值,要求用户猜这个数,并把结果提示给用户直到猜对为止。
- jquery中对变量的引用
- 需求与实现职责划分怎样合理!
- MIME邮件的组织结构
- Java面试系列
- 射频识别技术漫谈(31)——射频卡的复位时间
- 在android studio中RecyclerView的使用和遇到的问题(记录):
- 3.15---对引用变量按用户要求的条件排序
- Connect函数阻塞
- Redis高级特性及应用场景
- [PHP基础]PHP,日期时间与秒数的相互转换
- winform 添加 esc 键退出窗体
- python3.x爬虫:按页爬取淘宝商品列表
- Mysql 根据时间戳按年月日分组统计(做个收藏)
- bat批处理文件
- C# winfromListBox 查找选中项是集合中的第几个