[英]What is the best way to implement a generic range as a function argument in Java?
I have a function that needs a range as an argument. 我有一个需要范围作为参数的函数。 The domain is [0-100] and it includes 0 and 100. The range argument could for example be:
域为[0-100],它包括0和100.范围参数可以是例如:
[1-8, 18, 20-88, 90-92]
or 要么
[1, 10-30]
Ranges do not overlap. 范围不重叠。 I am interested in the mechanism - how best to pass a range argument?
我对机制感兴趣 - 如何最好地传递范围参数? Array?
阵列? or use variable argument?
或使用变量参数?
Use a list of Range objects: 使用Range对象列表:
class Range
{
int low;
int high;
Range(int low, int high)
{
this.low = low;
this.high = high;
}
}
List<Range> rangeArray = new ArrayList<Range>();
then assign ranges like this: 然后分配这样的范围:
rangeArray.add(new Range(1,8));
rangeArray.add(new Range(18,18));
rangeArray.add(new Range(20,88));
rangeArray.add(new Range(90,92));
Have a static method r()
that creates a range in some representation 有一个静态方法
r()
,它在某种表示中创建一个范围
func( r(1,8), r(18), r(20,88), r(90,92) )
Or use method chaining to create a list of ranges 或使用方法链接创建范围列表
func( Range.r(1,8).r(18).r(20,88).r(90,92) )
Or, as my joke comment 或者,正如我的笑话评论
func(1,-8, 18, 20,-88, 90,-92)
Or, use 100*x+y
to represent (x,y)
或者,使用
100*x+y
来表示(x,y)
func( 1_08, 18, 20_88, 90_92 );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.