gpt4 book ai didi

java - 使用 Arraylist 追加序列

转载 作者:行者123 更新时间:2023-12-01 20:06:00 26 4
gpt4 key购买 nike

我遇到了这个问题:

考虑下面的类:

public class MergeSequence{

private ArrayList<Integer> values;
public MergeSequence(){ values = new ArrayList<Integer>();}
public void add(int n) {values.add(n);}
public String toString() { return values.toString(); }
}

添加方法

public MergeSequence append(MergeSequence other)

创建一个新序列,附加这个序列和另一个序列,而不修改任何一个序列

例如,如果序列 (a) 为:1 4 9 16b 是序列 9 7 4 9 11那么调用 a.append(b) 返回序列 1 4 9 16 9 7 4 9 11 而不修改 a 或 b。

我不想要这个问题的答案,而是想要关于如何使用公共(public) MergeSequence 附加方法来执行此操作的提示。任何建议都会有帮助,因为我完全被难住了(我对 java 和一般编程都很陌生)。

最佳答案

除非您可以访问 MergeSequence 对象中包含的值,否则您实际上无法执行此操作。当前没有定义允许您执行此操作的方法。即使定义的 toString() 方法也不起作用,因为它返回一个空字符串,这没有用。

但是,假设您可以更改源代码,使 values 不再是私有(private),而是现在公共(public),您可以执行以下操作.

public class MergeSequence
{
public ArrayList<Integer> values; // This must be public
public MergeSequence(){ values = new ArrayList<Integer>();}
public void add(int n) {values.add(n);}
public String toString() { return values.toString(); }

public MergeSequence append(MergeSequence other)
{
MergeSequence result = new MergeSequence(); // Create a new result object.

// Iterate through the "local" ArrayList and add each value to the result
for (int i = 0; i < values.size(); i++)
{
int j = values.get(i);
result.add(j);
}

// Now, iterate through the "external" ArrayList and add each value to the result
for (int i = 0; i < other.values.size(); i++)
{
int j = other.values.get(i);
result.add(j);
}

// Then return the result. Neither source ArrayList is modified.
return result;
}
}

关于java - 使用 Arraylist 追加序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58984914/

26 4 0