请问:Java怎么比较model类int属性的大小,将大的赋值给小的覆盖小的值?
高洛峰
高洛峰 2017-04-18 10:33:25
[Java讨论组]
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类,在第一个第二个相同的情况下,比较第三个的大小,如果哪个大就赋值覆盖小的那个实例的对应的第三个属性,怎么可以做到呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
阿神

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

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

像这样(看代码 的 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());
    }
}

运行结果:

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号