gpt4 book ai didi

java - ArrayList addAll 方法未添加

转载 作者:行者123 更新时间:2023-12-01 23:12:11 27 4
gpt4 key购买 nike

我试图将 this.array 的内容添加到临时数组中,但当我打印返回值时,它始终为空。

类对象

import java.util.*;
public class LetterInventory{

private ArrayList<Integer> array;
private int size;

public LetterInventory(String input){
size = input.length();
array = new ArrayList<Integer>();
for(int i = 0;i<input.length();i++){
array.add(i,(int)input.charAt(i));
}
}

public LetterInventory(){
size = 0;
array = new ArrayList<Integer>();
}

public int size(){
return size;
}

public LetterInventory add(LetterInventory other){
LetterInventory temp = new LetterInventory();
temp.array.addAll(array);
return temp;
}

public String toString(){
String result = "[";
for(int i = 0;i<=size-1;i++){
int temp = array.get(i);
result += (char)temp;
}
return result += "]";
}
}

和我的客户端代码

import java.util.*;

public class Practice {
public static void main (String[] args){
LetterInventory l1 = new LetterInventory("aaa");
LetterInventory l2 = new LetterInventory("bbb");
System.out.println(l1);
System.out.println(l2);
LetterInventory sum = l1.add(l2);
System.out.println(sum);
}

}

无论我做什么,输出总是[]。我非常需要这方面的帮助。因为我今天大部分时间都在尝试解决这个问题。

最佳答案

您正在独立于列表的实际大小来跟踪大小。这在您的构造函数中是可以的,但是您的 add 方法会复制列表,但不会设置大小。尝试不使用大小变量并使用 array.size() 这将始终是正确的。

ps。正如上面 Kylar 所指出的,您的添加方法中还有另一个错误

关于java - ArrayList<Integer> addAll 方法未添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771074/

27 4 0