这是我的代码。我面临的问题是,我想返回一个整数序列,我计划使用整数的ArrayList。以下是我的类,它正在实现名为IntSequence的接口。
import java.util.*;
public class IntArray implements IntSequence {
int[] a;
public IntArray(int size) {
a = new int[size];
}
@Override
public int length() {
return a.length;
}
@Override
public int get(int index) {
int use = this.a[index];
return use;
}
@Override
public void set(int index, int value) {
this.a[index] = value;
}
@Override
public IntSequence subSequence(int index, int size) {
ArrayList<Integer> valuelist = new ArrayList<>();
for(int i = a1; i <= a2 + a1; i++)
{
if((a1 + a2) <= a.length)
valuelist.add(a[i]);
}
IntArray cObject = new IntArray(size);
return new IntSequence() {
@Override
public int length() {
return a.length;
// TODO Auto-generated method stub
}
@Override
public int get(int index) {
return null;
// TODO Auto-generated method stub
}
@Override
public void set(int index, int value) {
// TODO Auto-generated method stub
}
@Override
public IntSequence subSequence(int index, int size) {
return (IntSequence) valuelist;
}
};
}
}
这是我的IntSequence界面 -
public interface IntSequence {
int length();
int get(int index);
void set(int index, int value);
IntSequence subSequence(int index, int size);
}
问题 - 我在subSequence中返回的是一个ArrayList,它是一个不可复制的类型,可以为该方法返回。我是一个乞丐,老实说,不知道如何解决这个问题。 (我不允许更改方法的参数,但仍设法做到这一点。)
提前感谢您花时间看这个我真的很感激!
答案 0 :(得分:1)
您正在尝试返回ArrayList,而不是新的IntArray。
不要使用ArrayList。创建
IntArray cObject = new IntArray(size);
然后将值设置为该值。我会把这一点留给你:)
然后只是......(不需要那个内联类)
return cObject;