gpt4 book ai didi

java - 如何获得一个int数组,其中某个元素在单链列表中的位置

转载 作者:行者123 更新时间:2023-12-01 16:35:24 27 4
gpt4 key购买 nike

我应该在此练习中使用单链接列表和具有通用类型的某个元素。返回该元素出现的每个位置的int数组。
我的代码如下所示:

  public int[] ocurrences(T elem)
{
Node<T> cur = first;
int[] ocurrence = new int[size];
for(int i = 0; i < size -1; i++)
{
cur = cur.getNext();
T element = cur.getValue();
if(element.equals(elem))
{
ocurrence[i] = i;
}
}
return ocurrence;
}


首先是第一个节点。 size是列表的大小。

我的代码的问题在于,对于列表示例{3,2,3},结果应为[0,2]。
我的代码打印了数组的引用,当我逐个元素打印它时,它打印的是[0,0,2]。

谢谢您的帮助!

最佳答案

您需要为ocurrence[]使用单独的计数器,例如在下面给出的代码中,我为其使用了计数器变量c

public int[] ocurrences(T elem) {
Node<T> cur = first;
int[] ocurrence = new int[size];
int c = 0;
for (int i = 0; i < size - 1; i++) {
cur = cur.getNext();
T element = cur.getValue();
if (element.equals(elem)) {
ocurrence[c++] = i;
}
}
ocurrence = Arrays.copyOf(ocurrence, c);
return ocurrence;
}


循环结束后,只需保留用 c索引的元素。为此,我在函数返回 ocurrence = Arrays.copyOf(ocurrence, c)之前使用了 ocurrence[]

关于java - 如何获得一个int数组,其中某个元素在单链列表中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61960266/

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