gpt4 book ai didi

java - 有效控制数组的进入-JAVA

转载 作者:行者123 更新时间:2023-12-01 11:51:29 24 4
gpt4 key购买 nike

我想问你,如果我需要检查索引是否存在(数组长度可以),有什么更好的方法,如何将项目添加到数组中?

1)

private void addItemToArray(int[] arr, int index, int item)
{
if(index >= 0 && index < arr.length) {
//put item
}
}

2)

private void addItemToArray(int[] arr, int index, int item)
{
try {
//put item
catch(Exception e) {
return;
}
}

最佳答案

异常绝对是比什么都不做更好的选择,因为方法的调用者必须有办法知道他们提供的索引无效。尽管捕获异常并且在 catch block 中不执行任何操作(如您在第二个代码片段中所做的那样)是毫无意义的。

您可以从 ArrayList 中获取示例,其中包含一个内部数组:

/**
* Inserts the specified element at the specified position in this
* list. Shifts the element currently at that position (if any) and
* any subsequent elements to the right (adds one to their indices).
*
* @param index index at which the specified element is to be inserted
* @param element element to be inserted
* @throws IndexOutOfBoundsException {@inheritDoc}
*/
public void add(int index, E element) {
if (index > size || index < 0)
throw new IndexOutOfBoundsException(
"Index: "+index+", Size: "+size);

ensureCapacity(size+1); // Increments modCount!!
System.arraycopy(elementData, index, elementData, index + 1,
size - index);
elementData[index] = element;
size++;
}

如果必须避免引发异常,至少可以让该方法返回一个 boolean 来指示数组是否被修改。

关于java - 有效控制数组的进入-JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791909/

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