【发布时间】:2016-11-27 01:52:52
【问题描述】:
所以我想要做的是转移我的 Array 方法,这些方法反转我的数组并将另外两个合并到 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;
}
这是我在将这些 Array 变成 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;
}
【问题讨论】: