当前位置: 首页 > 面试题库 >

Java动态数组

彭礼骞
2023-03-14
问题内容

我正在学习Java编程课程,并且需要有关动态数组的帮助。我环顾四周,找不到解决方法,这只是我的简单程度。我上课不远,只是学习了基础知识,所以我不太了解,但是我需要知道如何制作动态数组。

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

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;
}
}


 类似资料:
  • 问题内容: 我有一个类-xClass,我想将其加载到xClass数组中,所以我声明了: 但是,我不知道是否需要10。为此,我可能需要8或12或任何其他数字。我要等到运行时才能知道。我可以即时更改数组中元素的数量吗?如果是这样,怎么办? 问题答案: 不,一旦创建,就无法更改数组的大小。你要么必须分配比你认为需要的更大的大小,要么接受必须重新分配它的开销,这需要增加它的大小。这样做时,你将不得不分配一

  • 问题内容: 我有一个字符串数组,其中包含类中方法的名称 在课堂上,我正在创建一个实例(例如)。现在,我可以调用,只是我想循环读取String数组。这可能吗? 问题答案: 您可以使用反射。通过调用完成 您必须处理大量异常,并且您的方法必须为。需要注意的是Java编码惯例喜欢到。 但是,使用反射应该是最后的选择。您应该使用更多的面向对象技术。 如果您经常需要类似的功能,也许您可​​以看看在Java平台

  • array.h #include<stdio.h> #include<stdlib.h> struct data { int *p;//指针保存数组的起始点 int length;//保存数组的长度 int stat;//0代表无序,1代表有序从小到大,2有序从大到小 int reallength;//实际分配的内存长度 };

  • 问题内容: 我有以下数据(字符串): 我想创建两个JComboBox(JComboBox1,JComboBox2),以便JComboBox1包含Course1,Course2,Course3等。 如果我从JComboBox1中选择Course2,则应在JComboBox2中填充相应的B1,B2,B3,B4。 如何实现呢?非常感谢。 问题答案: 是的,只需创建一个为每一组,做对的时候改变。 附录:例

  • 主要内容:ArrayList 类中的属性,ArrayList 类中的方法在 C# 中,动态数组(ArrayList)代表了可被单独索引的对象的有序集合。动态数组基本上可以代替数组,唯一与数组不同的是,动态数组可以使用索引在指定的位置添加和移除指定的项目,动态数组会自动重新调整自身的大小。另外,动态数组允许在列表中进行动态内存分配、增加、搜索、排序等操作。 ArrayList 类中的属性 在 C# 中想要创建动态数组需要使用 ArrayList 类,下表中列出了 Arr

  • 本文向大家介绍Java实现动态数字时钟,包括了Java实现动态数字时钟的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java实现动态数字时钟的具体代码,供大家参考,具体内容如下 构建: Clock继承 JFrame 为运行页面 ClockText 测试类 创建 Clock 对象  运行效果: 具体实现: 一、Clock类 四个JPnal 三个放时间 最后一个放日期 放时间的三个JP