gpt4 book ai didi

java - 如何从 Java 中的参数将项目添加到数组通用对象中

转载 作者:行者123 更新时间:2023-12-02 01:37:50 28 4
gpt4 key购买 nike

因此,我正在创建一个名为“Sack”的通用数据结构。在此,我将元素添加到麻袋中,抓取随机元素,查看它是否为空,或转储其内容等。此外,我还创建它来扩展以容纳所需数量的元素。

目前,我正在研究 add 方法,但在 add 方法上遇到了麻烦,我正在尝试想办法将参数中的内容添加到麻袋中。

import java.util.Arrays;

public class Sack<E>
{
public static final int DEFAULT_CAPACITY = 10;
private E [] elementData;
private int size;

@SuppressWarnings("unchecked")
public Sack()
{
elementData = (E[]) new Object[DEFAULT_CAPACITY];
}
@SuppressWarnings("unchecked")
public Sack(int capacity)
{
if(capacity < 0)
{
throw new IllegalArgumentException("capacity " + capacity);
}
this.elementData = (E[]) new Object[capacity];
}

public boolean isEmpty()
{
if(size == 0)
{
return true;
}
else
{
return false;
}
}
public E [] dump()
{
E [] E2 = Arrays.copyOf(elementData, size);
for(int i = 0; i < size; i++)
{
elementData[i] = null;

}
size = 0;
return E2;
}

在这个方法中,我试图将元素添加到我的袋子中。当我运行测试时,我被告知这是不正确的。如果有办法改善这一点的话。

    public void add(E item)
{
elementData[size] = item;
size++;
}

elementData 是我要添加项目的内容。

更新

我更新了我的添加方法,如下所示。

public void add(E item)
{
if(size >= elementData.length-1)
{
elementData[size] = item;
size++;
}
}

我现在收到的消息是 add 无法正常工作并检查大小使用情况。

最佳答案

你无法确保Java数组的容量,Javascript可以!您可以创建一个新的并复制:

public void add(E element) {

int index = size++;
if(size >= elementData.length-1) {

// it ensures elementData
elementData = java.util.Arrays.copyOf(elementData, size);
}
elementData[index] = element;
}

或者跳过数组容量的保证并改变检查方向:

public void add(E element) {

if(size < elementData.length-1) {

elementData[size++] = element;
}
// TODO else notice of the unsuccessfull add
}

关于java - 如何从 Java 中的参数将项目添加到数组通用对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54964692/

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