如何将<&>替换为字符串

时间:2018-08-18 14:40:32

标签: java

我可以用<>替换什么,因为我想比较一个以下的字符串是compare int,因此得到了解决此问题且不改变功能的任何解决方案。

public int compareTo(Object o) {
    Patient p = (Patient) o;
    if (this.getCategory() < p.getCategory())
        return -1;
    if (this.getCategory() > p.getCategory())
        return 1;
    else { 
        if (this.getTimeArrived().before(p.getTimeArrived()))
            return -1;
        if (this.getTimeArrived().after(p.getTimeArrived()))
            return 1;
    }
    return 0;
}

这个怎么样?可以将>&<更改为另一个解决方案,因为我想与字符串进行比较

    import java.util.Comparator;

public class PatientComparator implements Comparator<Patient>{
    public int compare(Patient p1, Patient p2) {
    if (p1.getCategory() < p2.getCategory())
        return -1;
    if (p1.getCategory() > p2.getCategory())
        return 1;
    else { if (p1.getTimeArrived().before(p2.getTimeArrived()))
        return -1;
           if (p1.getTimeArrived().after(p2.getTimeArrived()))
        return 1;
    }
    return 0;

}

}

1 个答案:

答案 0 :(得分:1)

根据您提供的其他信息(currently inside an answerdiv p span返回getCategory(),而String返回getTimeArrived()。您的目标似乎是:按“类别”进行比较,如果相等,则按“到达时间”进行比较。

java.util.DateString都实现了Comparable接口,因此您可以执行以下操作:

Date

您还可以创建一个Comparator

public int compareTo(Patient other) {
    // This code doesn't handle nulls
    int result = getCategory().compareTo(other.getCategory());
    if (result == 0) {
        result = getTimeArrived().compareTo(other.getTimeArrived());
    }
    return result;
}

此外,您正在创建一个Comparator<Patient> c = Comparator.comparing(Patient::getCategory) .thenComparing(Patient::getArrivedTime); 方法,而没有compareTo实现Patient。您应该将其更改为:

Comparable

然后覆盖public class Patient implements Comparable<Patient> { /* code */ } 中声明的compareTo方法。这也迫使您使用Comparable而不是compareTo(Patient)