Java数组大小固定
在Java数组大小固定,java,arrays,arraylist,Java,Arrays,Arraylist,在Java中,我想创建一个固定大小的数组,这样我就可以添加新元素,而第一个元素就会退出 例如: 大小为5的数组:{1,2,3,4,5},然后我添加“6”,“1”退出,因此我有{2,3,4,5,6}/code>,我添加了“7”,而“2”退出:{3,4,5,6,7} 所以我想添加一个新元素并删除第一个元素。有没有一个简单的方法来实现它,或者我必须自己实现它 我是否可以使用ArrayList执行此操作,并仅删除第一个对象? 如果删除数组列表的第一个对象,第二个对象会自动成为第一个对象吗 谢谢假设您不一
Java
中,我想创建一个固定大小的数组
,这样我就可以添加新元素,而第一个元素就会退出
例如:
大小为5
的数组
:{1,2,3,4,5}
,然后我添加“6
”,“1
”退出,因此我有{2,3,4,5,6}/code>,我添加了“7
”,而“2
”退出:{3,4,5,6,7}
所以我想添加一个新元素并删除第一个元素。有没有一个简单的方法来实现它,或者我必须自己实现它
我是否可以使用ArrayList
执行此操作,并仅删除第一个对象
?
如果删除数组列表的第一个对象
,第二个对象会自动成为第一个对象吗
谢谢假设您不一定需要列表
,您可以使用fromGoogle Guava,这是一个非阻塞队列,当尝试向队列中添加新元素时,会自动从队列的头逐出元素,并且队列已满
// Create an EvictingQueue with a max size of 5
Collection<Integer> collection = EvictingQueue.create(5);
// Add 5 elements to the queue
collection.addAll(Arrays.asList(1, 2, 3, 4, 5));
System.out.println(collection);
// Add one more element
collection.add(6);
System.out.println(collection);
只需将第i个元素设置为第i+1个元素,并在末尾添加所需的内容:
static int[]g(int-arr[],int-n){
对于(int i=0;i您可能需要执行以下操作:
public class Num {
int[] array = {1,2,3,4,5};
public void add(int number){
int[] temp = array;
array = new int[array.length];
for(int i=1;i<temp.length;i++){
array[i-1] = temp[i];
}
array[array.length-1] = number;
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
Num num = new Num();
num.add(6);
num.add(7);
num.add(8);
}
}
公共类Num{
int[]数组={1,2,3,4,5};
公共无效添加(整数){
int[]temp=数组;
array=newint[array.length];
对于(int i=1;它的关键字是“循环数组”,我相信您可以找到一个Java实现。不确定数组问题,但对于arraylist是,如果您删除数组列表中第0个索引处的元素,第一个索引处的元素将变为第0个索引。“或者我必须自己实现它”当然可以。数组中没有“添加”,只有“替换”。您可以将某个索引上的项目替换为另一个。而不是询问“我可以使用ArrayList执行此操作吗?”你自己试试看。在这里问这样的问题是非常愚蠢的。当心那些投反对票的家伙,至少解释一下你为什么投反对票。这是非常粗鲁的行为。我不认为这个问题有那么糟糕。我当然不会仅仅通过一次谷歌搜索就想出驱逐队列
作为答案。我不会全力以赴创建逐出队列
时返回集合的方法。相反,我至少会使用队列
尊敬。@MaartenBodewes我想更多地展示它是如何工作的,事实上它是一个队列
在这种情况下并不重要,但我同意你的观点,现在取决于操作。@MaartenBodewes是的,我知道,我已经做过了我花在这个网站上的时间越多,我对下载的理解就越少。请尝试遵守Java编码规则。这些示例应该很容易阅读。解释一下你在使用内联注释时做了什么,并命名你的变量。当我看到这一点时,我想到的第一件事是g(ee),这是什么?没有什么要解释的,你想要的是解释for循环在java中的作用。但是如果它有帮助的话……例如0th
元素(arr[0]
)并将其设置为等于ith+1
元素(arr[0+1]=arr[1]
),那么arr
看起来就像[2,2,3,4,5]
。在i
提供[2,3,4,5,5]
的同时继续执行上述过程。现在只需“在末尾添加所需的内容”或在arr[arr.length-1]
处获取元素,并将其设置为“所需的内容”(在我的示例中,我有6
)因此arr[arr.length-1]=6
或arr[4]=6
。
public class Num {
int[] array = {1,2,3,4,5};
public void add(int number){
int[] temp = array;
array = new int[array.length];
for(int i=1;i<temp.length;i++){
array[i-1] = temp[i];
}
array[array.length-1] = number;
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
Num num = new Num();
num.add(6);
num.add(7);
num.add(8);
}
}