Java 动态数组

标签 java arrays dynamic

我正在参加 Java 编程类(class),我需要有关动态数组的帮助。我环顾四周,找不到符合我的简单程度的方法。我在类里面距离不远,刚刚学习了基础知识,所以我知道的不多,但我需要知道如何制作动态数组。

以下是我们获得的两个示例程序:

public class DynamicArrayOfInt
{
    private int[] data;
    public DynamicArrayOfInt()
    {
        data = new int[1];
    }
    public int get(int position)
    {
        if (position >= data.length)
            return 0;
        else 
            return data[position];
        }
    public void put(int position, int value)
    {
        if (position >= data.length)
        {
            int newSize = 2 * data.length;
            if (position >= newSize)
                newSize = 2 * position;
            int[] newData = new int[newSize];
            System.arraycopy(data, 0, newData, data.length);
            data = newData;
            System.out.println("Size of dynamic array increased to " + newSize);
        }
        data[position] = value;
    }
}
`

2号

import java.util.Scanner;
public class ReverseWithDynamicArray
{
    public static void main(Sting[] args)
    {
        DyanamicArrayOfInt numbers;
        int numCt;
        int num;
        Scanner scan = new Scanner(System.in);
        numbers = new DynamicArrayOfInt();
        numCt = 0;
        System.out.println("Enter some postive integers; Enter 0 to end");
        while (true)
        { 
            num = scan.nextInt();
            if (num <= 0)
                break;
            numbers.put(numCt, num); 
            numCt++;
        }
        System.out.println("\nYour numbers in reverse order are:\n");
        for (int i = numCt - 1; i >= 0; i--)
        {
            System.out.println( numbers.get(i) );
        }
    }
}

第二个应该继承第一个,并允许您在输入它们后创建更多数组。但是当我使用这些数组时,它说我有一个错误,并且它说类名 ReverseWithDynamicArray 仅在明确请求注释处理时才被接受。

最佳答案

将其用于您的第一个示例程序,我在 System.arraycopy 更改了您的参数

public class DynamicArrayOfInt
{
private int[] data;
public DynamicArrayOfInt()
{
    data = new int[1];
}
public int get(int position)
{
    if (position >= data.length)
        return 0;
    else 
        return data[position];
    }
public void put(int position, int value)
{
    if (position >= data.length)
    {
        int newSize = 2 * data.length;
        if (position >= newSize)
            newSize = 2 * position;
        int[] newData = new int[newSize];
        System.arraycopy(data, 0, newData, 0, data.length);
        data = newData;
        System.out.println("Size of dynamic array increased to " + newSize);
    }
    data[position] = value;
}
}

关于Java 动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891395/

相关文章:

templates - 在 Jinja 中动态获取变量(从字符串)

java - 如何在使用 HtmlUnit 时 "get around"steam 登录?

Java 扫描器 while 循环

java - 使用 Java 8 的模板方法设计模式

java - 等到 firebase 数据检索数据

javascript - 递归地过滤数组寻找 parent

java - Java 如何查找数组中所有奇数出现的元素

c++ - 如何将内存分配给大小为 10^9 的二维数组

c++ - 在 C++ 中动态分配一个字符串数组

javascript - 创建一个变量,每个循环中都有一个变量 - jQuery