我有一堂课
public class StudentVO {
int age;
String name;
}
我在两个不同的领域使用了同一堂课。在一个地方,我需要根据年龄分类。在另一个地方,我需要根据名称进行排序,而在另一个地方,我可能需要根据年龄和名称进行排序。我怎样才能做到这一点?如果一个字段我可以覆盖compareTo()
。
是否有可能做到这一点?
1)您应该编写两个用于分别对年龄和名称进行排序的比较器,然后使用Collections.sort(List,Comparator)。像这样:
class StudentVO {
private String name;
private int age;
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;
}
}
class AgeComparator implements Comparator<StudentVO> {
@Override
public int compare(StudentVO o1, StudentVO o2) {
Integer age1 = o1.getAge();
Integer age2 = o2.getAge();
return age1.compareTo(age2);
}
}
class NameComparator implements Comparator<StudentVO> {
@Override
public int compare(StudentVO o1, StudentVO o2) {
return o1.getName().compareTo(o2.getName());
}
}
然后使用它们,基于进行排序age
:
Collections.sort(list,new AgeComparator());
排序依据name
:
Collections.sort(list,new NameComparator());
2)如果您认为List
of
StudentVO
具有某种自然的排序顺序,请说假设按by排序age
。然后,将Comparable用于age
和Comparator
用于name
。
class StudentVO implements Comparable<StudentVO>{
private String name;
private int age;
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;
}
@Override
public int compareTo(StudentVO o) {
return ((Integer)getAge()).compareTo(o.getAge());
}
}
class NameComparator implements Comparator<StudentVO> {
@Override
public int compare(StudentVO o1, StudentVO o2) {
return o1.getName().compareTo(o2.getName());
}
}
然后使用它们,基于进行排序age
:
Collections.sort(list);
排序依据name
:
Collections.sort(list,new NameComparator());
本文向大家介绍基于java中的PO VO DAO BO POJO(详解),包括了基于java中的PO VO DAO BO POJO(详解)的使用技巧和注意事项,需要的朋友参考一下 一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的ava对象。 最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合PO中应该不包含任何对数据库的操作。 二、VO
问题内容: 我正在尝试编写一个需要两个s 的泛型max函数。 到目前为止,我有 这无法编译与 我认为这是因为in 可以解释为参数a的一种类型,而参数b的另一种类型,因此无法进行比较。 我如何从这个洞中挖出自己? 问题答案: 为了获得最佳效果,您应该使用。 问题在于这表示类型T可与某种类型媲美,但您不知道该类型是什么。当然,根据常识,实现Comparable的类至少应该能够与自身进行比较(即,能够与
我想设计一个动态存储过程,在其中我将传递列名、表名和where子句。以便使用存储过程在具有不同参数的不同表上运行select。 我不确定这是否可能。如果是,任何人都可以帮助我的例子。 例如。
我开始使用验证框架用jax-rs验证json请求 是否可以根据另一个字段验证一个字段? 提前致谢
我需要为站点实现一个反向代理/重定向服务,该服务将托管在AWS S3(静态JS资产)+CloudFront和作为不同任务运行的多个后端AWS ECS在Redirect或反向代理服务应该分析输入参数并重定向到相应的后端。 到目前为止,我已经找到了ECS-nginx-proxy,但它看起来更像是用于开发/阶段环境的工具。如何使用AWS服务如ALB+API Gateway、Lambda@Edge在生产中
我有一个PHP脚本这是一个字符串替换函数,它接受数组中的字符,如果在字符串中找到任何字符,就替换它们。是否有与该函数等价的java函数。我找到了一些方法,但有些是使用循环,有些是重复语句,但在Java中没有找到类似的单行解决方案。