我在创建一个需要一个Range对象数组并初始化列表的构造函数时遇到了麻烦–列表应该初始化为Range的ArrayList。这是到目前为止我班上没有的代码。我试图创建的此构造方法属于多组方法。我已经通过stackoverflow搜索了类似的问题,但没有运气,但是没有运气。任何帮助表示赞赏。
public interface NumberGroup
{
boolean contains(int value);
}
import java.util.Scanner
public class Range implements NumberGroup
{
private int minValue, maxValue;
public Range(int minValue, int maxValue)
{
this.minValue = minValue;
this.maxValue = maxValue;
}
public boolean contains(int value)
{
return minValue <= value && value <= maxValue;
}
}
import java.util.List
import java.util.ArrayList
public class MultipleGroups implements NumberGroup
{
private List<NumberGroup> groupList;
//problem area here.
public MultipleGroups(){
}
public boolean contains(int num)
{
for(NumberGroup group : groupList)
if(group.contains(num))
return true;
return false;
}
the test class tests the constructor with the following:
Range [] myRanges = new Range[3];
myRanges[0] = new Range(5,8);
myRanges[1] = new Range(10,12);
myRanges[2] new Range(1, 6);
group = new MultipleGroups(myRanges);
答案 0 :(得分:2)
以下内容似乎满足您的要求:
public MultipleGroups(Range[] ranges){
this.groupList = Arrays.asList(ranges);
}
您可能会考虑做一些事情,而不仅仅是按原样使用:
您可能希望允许varargs调用(即,您不必在调用站点上显式创建数组):
public MultipleGroups(Range... ranges){
您可能需要复制列表,以避免调用者在调用构造函数后对数组进行恶意操作:
this.groupList = new ArrayList<>(Arrays.asList(ranges));