Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数组返回数字序列?_Java_Arraylist_Interface - Fatal编程技术网

Java 从数组返回数字序列?

Java 从数组返回数字序列?,java,arraylist,interface,Java,Arraylist,Interface,我有一个这样的方法- public IntSequence subSequence(int index, int size) { //IntSequence is an interface and currently this thing is inside a class that's //implementing it ArrayList<Integer> valuelist = new ArrayList<>(); for(int i = a1;

我有一个这样的方法-

public IntSequence subSequence(int index, int size) {
//IntSequence is an interface and currently this thing is inside a class that's
//implementing it

    ArrayList<Integer> valuelist = new ArrayList<>();
    for(int i = a1; i <= a2 + a1; i++)
    {
        if((a1 + a2) <= a.length)
        valuelist.add(a[i]);
    }
    return valuelist;
}

您的方法实现了一个返回
IntSequence
的方法。如果您尝试返回一个
ArrayList
,那么实际上并没有实现接口。您需要将ArrayList转换为任何IntSequence并返回它。

如果看不到
IntSequence
,很难给出具体的答案。但你可能想做一些类似的事情:

class ArrayIntSequence implements IntSequence {

    private ArrayList<Integer> arr;

    public ArrayIntSequence (ArrayList<Integer> arr) {
        this.arr = arr;
    }

    public ... 
    // provide bodies for all the methods defined in IntSequence, implemented
    // using "arr"

}
编辑:现在已经包含了
IntSequence
的定义,
length
get
set
的实现非常简单,使用类似的
ArrayList
方法,看起来您已经获得了
子序列
,但您可以调整它以使用
数组列表
,而不是数组。

尝试以下操作:

public IntSequence subSequence(int index, int size) {
    // ...
    final ArrayList<Integer> valuelist = new ArrayList<>();
    // ...
    return new IntSequence() {
       // Compiler will tell you what to put here
    };
 }
public IntSequence子序列(int索引,int大小){
// ...
最终ArrayList值列表=新ArrayList();
// ...
返回新的IntSequence(){
//编译器将告诉您在这里放置什么
};
}

编译器将给出一些错误,告诉您需要实现哪些方法才能返回
IntSequence
。如果这太多,您可能需要为实现接口的类创建一个新对象,并查看是否可以将正确的内容传递给构造函数。

似乎您需要构建一个
IntSequence
的实例,一个实现它的类,对吗?IntSequence在哪里定义?您可以显示代码吗?您可以定义一个实现
IntSequence
的类,并使用
ArrayList
参数定义构造函数。但是,如果不看到
IntSequence
的样子,就很难给您提供更多的帮助。
return new ArrayIntSequence(valuelist);
public IntSequence subSequence(int index, int size) {
    // ...
    final ArrayList<Integer> valuelist = new ArrayList<>();
    // ...
    return new IntSequence() {
       // Compiler will tell you what to put here
    };
 }