gpt4 book ai didi

java - 如何将方法从 Array 转移到 ArrayList

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:51 26 4
gpt4 key购买 nike

所以我想要做的就是转移我的数组方法来反转我的数组并将另外两个数组合并到ArrayLists中。除了这两种之外,我已经能够使用我拥有的所有其他方法来做到这一点。我从我的反向方法中收到一个错误,显示意外的类型、所需的变量、找到的值。我不知道该怎么做才能修复它。以下是我的 Array 类中的工作方法:

/***        <<< CODE COMPLETE >>>
* reverses the order of the elemets in the array
***/
public static void reverse(int[] a)
{
for (int i = 0; i < a.length/2; i++)
{
int reverseOrder = a[i];
a[i] = a[a.length - 1 - i];
a[a.length - 1 - i] = reverseOrder;
}
}

/*** <<< CODE COMPLETE >>>
* merges two sorted arrays into 1 new array, maintains the sorted order
***/
public static int[] merge(int[] a, int[] b)
{
int[] merge = new int[a.length + b.length];
int i = 0, j = 0, k = 0;

while (i < a.length && j < b.length)
{
if (a[i] < b[j])
{
merge[k++] = a[i++];
}

else
{
merge[k++] = b[j++];
}
}

while (i < a.length)
{
merge[k++] = a[i++];
}


while (j < b.length)
{
merge[k++] = b[j++];
}

return merge;
}

这是我一直在尝试将这些数组放入 ArrayList 中所做的事情:

/***        <<< CODE NOT COMPLETE >>>
* reverses the order of the elemets in the array
***/
public static void reverse(ArrayList <Integer> a)
{
for (int i = 0; i < a.size()/2; i++)
{
int reverseOrder = a.get(i);
a.get(i) = a.get(a.size() - 1 - i);
a.get(a.size() - 1 - i) = reverseOrder;
}
}

/*** <<< CODE NOT COMPLETE >>>
* merges two sorted arrays into 1 new array, maintains the sorted order
***/
public static ArrayList <Integer> merge (ArrayList <Integer> a, ArrayList <Integer> b)
{
ArrayList <Integer> merge = new ArrayList <Integer> (a.size() + b.size());
int i = 0, j = 0, k = 0;

while (i < a.size() && j < b.size())
{
if (a.get(i) < b.get(j))
{
merge.get(k++) = a.get(i++);
}

else
{
merge.get(k++) = b.get(j++);
}
}

while (i < a.size())
{
merge.get(k++) = a.get(i++);
}

while (j < b.length)
{
merge.get(k++) = b.get(i++);
}

return merge;
}

最佳答案

好吧,所以我看到的主要问题是你的工作中有很多这样的代码:

merge.get(i) = a.get(j);

这实际上没有任何作用。原因是 ArrayList 实例的 get 方法仅返回您传入的索引处的当前值。您无法使用此方法设置此索引处的值,因为您必须使用实例方法 set,如下所示:

merge.set(i, a.get(j));

其中 i 是您想要设置的索引,a.get(j) 是您想要将该索引设置为的值。

关于java - 如何将方法从 Array 转移到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825031/

26 4 0