对于以下问题,这是不是一个比较好的解决方案:
考虑到cinterval可以实现任何间隔:(a,b),和
CintervalList实现不同间隔的重聚,这是必需的
编写与两个间隔相交的intervallist方法。
如果有更好的方法来设计这两个类,你能提供一些建议吗?
如果需要工会怎么办间隔的并集并不总是一个间隔,所以如何更改方法的返回类型?
如果您对设计类有更好的建议,那么至少可以给出方法签名(如果不是整个主体的话)。多谢提前。
附:你认为为什么需要辛特瓦利斯特我本来可以有一个名为intersect inside CInterval本身的方法,其方法如下:
CInterval intersection(CInterval x)可以这样称呼

class CInterval
{
    int a;
    int b;
    boolean vd = false; //(void intervals are marked with vd = true)
}

class CIntervalList
{
    CInterval intersection(CInterval x, CInterval y)
    {
        CInterval z = new CInterval();

        if(x.vd == false || y.vd = false)
        {
            z.vd= true;
            return z;
        }
        else if(x.a < y.a)
        {
            if(x.b < y.a)
            {
                z.vd= true;
                return z;
            } else
            {
                if(x.b < y.b)
                {
                    z.a = y.a;
                    z.b = x.b;
                    return z;
                }
                else
                {
                    z.a = y.a;
                    z.b = y.b;
                    return z;
                }
            }
        } else if(x.a > y.a)
        {
            if(y.b < x.a)
            {
                z.vd= true;
                return z;
            } else
            {
                if(y.b < x.b)
                {
                    z.a = x.a;
                    z.b = y.b;
                    return z;
                }
                else
                {
                    z.a = x.a;
                    z.b = x.b;
                    return z;
                }
            }
        }
    }
}

最佳答案

一堆话
CInterval intersection(CInterval x, CInterval y)应该是静态的,这就是为什么它在Java中类似于CIntervalListFilesCollections。。。
a和b不是那么有意义而是使用bornSup和bornInf或left和right或end和start。
使用Paths的参数创建构造函数。CInterval
你有没有想过使用public CInterval(int a,int b, boolean vd)Math.min
当您像这样访问实例变量Math.max时,您没有考虑封装oo主体尝试为类设置getter和setter。
如果其中一个间隔是空的,在这种情况下,将z间隔设置为空的,因此vd
不需要写这个就足够了。
注:但我认为你的问题更适合https://codereview.stackexchange.com/

10-04 20:49