gpt4 book ai didi

Java ArrayUtils.toPrimitive 我不能做 ArrayUtils.removeElement

转载 作者:行者123 更新时间:2023-11-30 23:06:42 24 4
gpt4 key购买 nike

我需要将 mysql 数据库调用的结果用作 INT 数组。问题是,当我通过 IntegerList 通过 ResultSet 检索数据然后使用 "ArrayUtils.toPrimitive" 时,我无法执行 ArrayUtils.removeElement。但是如果我只是创建一个数组,那么我可以删除元素。

我的意思是:

       List<Integer> rowValues = new ArrayList<>();
String MySqlResultStr;
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int gematria = rs.getInt("gematria");
rowValues.add(rs.getInt(1));
}
int[] GematriaIntArray = ArrayUtils.toPrimitive(rowValues.toArray(new Integer[0]));
System.out.println("Contents Pre: " + GematriaIntArray.length);
GematriaIntArray = ArrayUtils.removeElement(GematriaIntArray, 1);
System.out.println("Contents Pst: " + GematriaIntArray.length);
int GematriaIntArraySize = GematriaIntArray.length;
int GematriaIntTempArraySize = GematriaIntArray.length;;
int GematriaSum = 0;
int PerekIndent = 0;
for (int i = 1; i < (GematriaIntArraySize +1); i++)
{
for (int j = 0; j < GematriaIntTempArraySize; j++)
{
GematriaSum = GematriaSum + GematriaIntArray[j];
System.out.println(GematriaSum + "," + (i+PerekIndent) + "," + (i+j+PerekIndent));
}
GematriaSum = 0;
//--The line below does not work!
GematriaIntArray = ArrayUtils.removeElement(GematriaIntArray, i);
GematriaIntTempArraySize = GematriaIntArray.length;
}

对比:

int[] GematriaIntArray = {1,2,3,4,5};
System.out.println("Contents Pre: " + GematriaIntArray.length);
GematriaIntArray = ArrayUtils.removeElement(GematriaIntArray, 1);
System.out.println("Contents Pst: " + GematriaIntArray.length);

最佳答案

您正在对数组进行索引。假设您有一个只有一个元素的数组(我将使用小写变量名):

for (int i = 1; i < (gematriaIntArraySize +1); i++)
{
//omitted some code
//--The line below does not work!
gematriaIntArray = ArrayUtils.removeElement(gematriaIntArray, i);
}

您要求 ArrayUtils 从数组中删除元素 1,尽管它只有一个元素。使用 ArrayUtils.removeElement(gematriaIntArray, i - 1) 并在每次迭代中计算数组的长度。沿着这些线的东西:

for (int i = 1; i < (gematriaIntArray.length +1); i++)
{
for (int j = 0; j < gematriaIntTempArraySize; j++)
{
gematriaSum = gematriaSum + gematriaIntArray[j];
System.out.println(gematriaSum + "," + (i+perekIndent) + "," + (i+j+perekIndent));
}
gematriaSum = 0;
gematriaIntArray = ArrayUtils.removeElement(gematriaIntArray, i - 1);
gematriaIntTempArraySize = gematriaIntArray.length;
}

我没有检查代码的作用,只检查了有问题的部分,尽管那里可能还有其他问题。

关于Java ArrayUtils.toPrimitive 我不能做 ArrayUtils.removeElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21564377/

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