gpt4 book ai didi

java - 如何在运行时根据用户/程序员的需要自动增加数组的大小?

转载 作者:行者123 更新时间:2023-11-30 06:04:47 25 4
gpt4 key购买 nike

我正在编写Java的Vector类和Java的所有其他集合类的代码,但我遇到的问题是如何才能做到数组的大小在运行时自动增加。程序正常运行,不会出现“数组越界异常”..嗯,这是我的代码

/* Developed By: Nitin_Khanna
Date: 1/February/2018
Github Username:beNitinhere
Twitter Username:beNitinhere

*/
class Vector{

private static int[] A;
public static long length;
//Default size of Vector is 10
Vector(){

length+=10;
A= new int[10];
}
//One-parameterized Costructor
Vector(int n){
length+=n;
A= new int[n];
}
//get
public void get(){
int []B=new int[5];
for(int i=0;i<length();i++){
System.out.println(A[i]);
}

}
//lenght
public static long length(){
return length;
}
//removeLastElement
public void removeLastElement(){
length=length-1;
}
//removeFirstElement
public void removeFirstElement(){
for(int i=0;i<length();i++){
A[i]=A[i+1];
}
}
//clear
public void clear(){
length=0;
}
//add
public void add(int num,int index){
if(index>length()){
set();
}
A[index]=num;
}
//remove
public void remove(int index){
for(int i=index;i<length();i++){
A[i]=A[i+1];
}
length-=1;
}
//firstElementIs
public int firstElementIs(){
return A[0];
}
//lastElementIs
public int lastElementIs(){
return A[(int)length()-1];
}
//elementAt
public int elementAt(int index){
return A[index];

}
private void set(){
length*=2;
A=new int[(int)length];
}
public void size(){

}
// public boolean isEmpty(){

// }
public static void main(String args[]){
Vector v1=new Vector(5);
for(int i=0;i<=10;i++){
v1.add(i,i);
}
v1.get();
v1.removeLastElement();
System.out.println("After calling removeLastElement function");
v1.get();
System.out.println("After calling remove function");
v1.remove(2);
v1.get();

}
}

预先感谢您的帮助..

最佳答案

没有办法这样做,但你可以使用 LinkedList或实现您自己的解决方案(Ziakad 在评论部分中指出应将其放入 Vector 类中,这是正确的。我只是给出了一般性描述,但在问题的上下文中,这是一个很好的建议):

public static int[] raiseSize(int[] input, int newSize) {
int[] output = new int[newSize];
for (int i = 0; i < input.length; i++) output[i] = input[i];
return output;
}

使用示例:

int foo[] = new int[3];
foo[0] = 1; foo[1] = 2; foo[2] = 0;
foo = raiseSize(foo, 5);

关于java - 如何在运行时根据用户/程序员的需要自动增加数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48570826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com