Java动态数组
我正在学习一门java编程课程,我需要关于动态数组的帮助。我环顾四周,找不到符合我简单程度的方法。我在班上不远,刚学了基础知识,所以我知道的不多,但我需要知道如何制作动态数组 以下是我们获得的两个示例程序:Java动态数组,java,arrays,dynamic,Java,Arrays,Dynamic,我正在学习一门java编程课程,我需要关于动态数组的帮助。我环顾四周,找不到符合我简单程度的方法。我在班上不远,刚学了基础知识,所以我知道的不多,但我需要知道如何制作动态数组 以下是我们获得的两个示例程序: public class DynamicArrayOfInt { private int[] data; public DynamicArrayOfInt() { data = new int[1]; } public int get(
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;
}
}
`
二号
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) );
}
}
}
import java.util.Scanner;
公共类反向使用DynamicCarray
{
公用静态空干管(Sting[]参数)
{
并矢数;
int numCt;
int-num;
扫描仪扫描=新扫描仪(System.in);
数字=新的动态carrayoff();
numCt=0;
System.out.println(“输入一些正整数;输入0结束”);
while(true)
{
num=scan.nextInt();
如果(num=0;i--)
{
System.out.println(number.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;
}
}
将此用于您的第一个示例程序,我在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;
}
}
你为什么不尝试收藏? 我认为LinkedList最适合它。 虽然我对你的要求不是很确定。 我试图在这里输入一些示例代码:
//create a LinkedList object :
LinkedList ll=new LinkedList();
//Add your items in linked list as many as you like
ll.add("item");// you can also add on a specific position by using ll.add(index, item);
//for getting the length of your LinkedList use:
int size=ll.size();
//for reversing the list items use :
Collections.reverse(list);//or you can manually implement it by using size or length of list
/* for printing the list, simply put it in Sop
(As toString method is overriden in Collection Framework to give a output string in
the form like: [collection items separated with comma] ) */
//注意:ArrayList和Linkedlist之间的区别是
ArrayList实现了RandomAccess接口,因此它为访问任何随机索引提供了恒定的访问时间。因此,使用ArrayList进行检索是最好的,但插入到随机位置ArrayList并不合适,因为它需要调整ArrayList的大小并执行几个移位操作
LinkedList是以带有双链表的节点的形式实现的顺序访问。对于访问任何随机索引,它需要访问该节点的下一个地址。因此,对于随机检索/读取LinkedList是不合适的。但是对于在随机索引上插入,它只需要维护一个要插入的新节点。因此,对于插入tween或您列表中的任何位置LinkedList都是合适的
我希望它能对你有所帮助。你为什么不尝试收藏? 我认为LinkedList最适合它。 虽然我对你的要求不是很确定。 我试图在这里输入一些示例代码:
//create a LinkedList object :
LinkedList ll=new LinkedList();
//Add your items in linked list as many as you like
ll.add("item");// you can also add on a specific position by using ll.add(index, item);
//for getting the length of your LinkedList use:
int size=ll.size();
//for reversing the list items use :
Collections.reverse(list);//or you can manually implement it by using size or length of list
/* for printing the list, simply put it in Sop
(As toString method is overriden in Collection Framework to give a output string in
the form like: [collection items separated with comma] ) */
//注意:ArrayList和Linkedlist之间的区别是
ArrayList实现了RandomAccess接口,因此它为访问任何随机索引提供了恒定的访问时间。因此,使用ArrayList进行检索是最好的,但插入到随机位置ArrayList并不合适,因为它需要调整ArrayList的大小并执行几个移位操作
LinkedList是以带有双链表的节点的形式实现的顺序访问。对于访问任何随机索引,它需要访问该节点的下一个地址。因此,对于随机检索/读取LinkedList是不合适的。但是对于在随机索引上插入,它只需要维护一个要插入的新节点。因此,对于插入tween或您列表中的任何位置LinkedList都是合适的
我希望它可以帮助您。System.arraycopy()中缺少一个参数,下面是java.lang.System.arraycopy()方法的声明 src——这是源数组 srcPos——这是源数组中的起始位置 dest——这是目标阵列 destPos——这是目标数据中的起始位置
length——这是要复制的数组元素数。System.arraycopy()中缺少一个参数,下面是java.lang.System.arraycopy()方法的声明 src——这是源数组 srcPos——这是源数组中的起始位置 dest——这是目标阵列 destPos——这是目标数据中的起始位置
length——这是要复制的数组元素数。看看java中集合的基本实现。有许多库可用。其中一个好的实现是
我希望您可以使用原语集合节省空间和时间。看看java中集合的原语实现。有许多库可用。其中一个好的实现是
我希望您可以使用基元集合节省空间和时间。我认为您在System.arraycopy()中缺少一个参数?我认为您在System.arraycopy()中缺少一个参数?非常感谢您的帮助。您帮助过的银行我知道这是一个很老的版本,但希望人们仍能读到。他之所以要求使用手工编码的动态数组,而不是内置的数组列表/链接列表,是因为这是大多数编程类帮助我们了解更多内容所需要的。目前我在一个Java类中,我们不允许我们将使用数组列表或内置链接列表,取而代之的是,我们被鼓励构建自己的数组列表。这种实践教会了我很多关于Java和编程的知识。我知道这很古老,但希望人们仍能读到。他之所以要求使用手动编码的动态数组,而不是内置数组列表/链接列表,是因为大多数程序都是这样做的ing类需要帮助我们学习更多。目前我在一个Java类中,我们不允许使用数组列表或内置链接列表,而是鼓励我们自己构建。这种实践教会了我很多关于Java和编程的知识。