java - 具有可调整数组大小的 toString 方法

标签 java arrays tostring

我看过的每一个来源要么不理解,要么似乎不适用,要么使用类似数组列表的东西。我对那些不熟悉。因此,我想使用一个基本的 toString 方法,该方法打印出数组的索引以及与变量“length”相比所持有的数字—— num.length 可能不同,因为这是底层数组的物理大小。底部的 for 循环有其要点。我正在尝试使用可调整大小的数组中保存的 int 打印索引(0-无限)。变量“length”不是数组的实际大小,而是在添加另一个单元格之前包含 0 的工作大小。 “strang”变量只是我尝试过的。我不认为它会起作用,但其他任何事情我似乎都没有帮助,因为我陷入了困境。

public class XArray
{
    private int[] nums;
    private int length;

    public XArray()
    {
        nums = new int[10];
        length = 0;
    }

    public void add(int value)
    {
        if (length == nums.length)
        {
            int[] nums2 = new int[(int)(nums.length * 1.2)];
            for ( int i = length - 1; i >= 0; i-- )
            {
                nums2[i] = nums[i];
            }
            nums = nums2;
        }
        nums[length] = value;
        length++;
    }

    public void set(int index, int value)
    {
        if (index < length)
        {
            nums[index] = value;
        }
    }

    public int get(int index)
    {
        return nums[index];
    }

    public int size()
    {
        return length;
    }

    public void remove()
    {
        nums[length - 1] = 0;
        length--;
    }

    public String toString(int[] nums)
    {
        String strang = "l";
        for ( int i = 0 ; i < length; i++ )
        {
            strang = "Index: " + i + " Number: " + nums[i] + ", ";
        }
        return strang;
    }
}

最佳答案

您需要在循环的每次迭代中连接值...类似...

public String toString(int[] nums)
{
    StringBuilder strang = new StringBuilder(length);
    for ( int i = 0 ; i < length; i++ )
    {
        strang.append("Index: ").append(i).append(" Number: ").append(nums[i]).append(", ");
    }
    return strang.toString();
}

一般来说,toString 不应该接受参数,numslength 之间存在差异,这可能会导致问题

@Override
public String toString() {...

这样,您将打印对象 num 数组的内容,该数组与 length 上下文相关联

关于java - 具有可调整数组大小的 toString 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28403397/

相关文章:

java - 如何从标准中删除标准?

java - 声明 JFrame 变量的最佳位置

mysql - 将 perl 数组返回给 MATLAB

C# float max 解析错误

java - toString() 和 MVC

java - Shell 将参数传递给带参数运行的 java

java - 为什么 JavaCC 无法在我的 Mac 上运行以及如何修复它?

javascript - 如何将每个 td 数据属性的选定复选框表行获取到数组对象?

c++ - 在 C++ 中使用 char 通过文件 I/O 读取文件

f# - 打印F#区分的联合