请问:Java怎么比较model类int属性的大小,将大的赋值给小的覆盖小的值?

public class Field {
    private String s1;
    private String s2;
    private int a1;

    public String getS1() {
        return s1;
    }

    public void setS1(String s1) {
        this.s1 = s1;
    }

    public String getS2() {
        return s2;
    }

    public void setS2(String s2) {
        this.s2 = s2;
    }

    public int getA1() {
        return a1;
    }

    public void setA1(int a1) {
        this.a1 = a1;
    }
}

Field u1 = new Field("f1", "f2", 1);
Field u2 = new Field("f1", "f2", 2);

假如实例化两个Field类,在第一个第二个相同的情况下,比较第三个的大小,如果哪个大就赋值覆盖小的那个实例的对应的第三个属性,怎么可以做到呢?

阅读 2.5k
2 个回答

提供一种思路,实现Comparable接口

@Override
    public int compareTo(Field f) {
        if(!this.s1.equals(f.s1)){
            ...
        }
        if(!this.s2.equals(f.s2)){
            ...
        }
        return a1 > a2;
    }

像这样(看代码 的 main 方法)?

public class Field {

    private String s1;
    private String s2;
    private int a1;

    public Field(String s1, String s2, int a1) {
        this.s1 = s1;
        this.s2 = s2;
        this.a1 = a1;
    }

    public String getS1() {
        return s1;
    }

    public void setS1(String s1) {
        this.s1 = s1;
    }

    public String getS2() {
        return s2;
    }

    public void setS2(String s2) {
        this.s2 = s2;
    }

    public int getA1() {
        return a1;
    }

    public void setA1(int a1) {
        this.a1 = a1;
    }

    public static void main(String[] args) throws Exception {
        Field u1 = new Field("f1", "f2", 1);
        Field u2 = new Field("f1", "f2", 2);

        System.out.println("u1 的 a1: " + u1.getA1());
        System.out.println("u2 的 a1: " + u2.getA1());

        if (u1.getS1() != null && u1.getS1().equals(u2.getS1())) { // u1 和 u2 的 S1 相同
            if (u1.getS2() != null && u1.getS2().equals(u2.getS2())) { // u1 和 u2 的 S2 相同
                if (u1.getA1() > u2.getA1()) { // u1 的 a1 更大
                    u2.setA1(u1.getA1()); // 设置 u2 的 a1 为 u1 的 a1
                } else if (u2.getA1() > u1.getA1()) { // u2 的 a1 更大
                    u1.setA1(u2.getA1()); // 设置 u1 的 a1 为 u2 的 a1
                }
            }
        }

        System.out.println("\n比较并赋值之后:");
        System.out.println("u1 的 a1: " + u1.getA1());
        System.out.println("u2 的 a1: " + u2.getA1());
    }
}

运行结果:
运行结果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题