我想合併這些ArrayList。 list3是最後一個。一切工作正常,但最後的數字,400,不會顯示在最終陣列。我不知道爲什麼或做什麼。我試圖讓ArrayList的排序,我幾乎完成,除了最後一個不會顯示的數字。合併與Java中的ArrayList排序
import java.util.ArrayList;
public class TextLab12st
{
public static void main(String args[])
{
int jsaList1[] = {101, 105, 115, 125, 145, 165, 175, 185, 195, 225, 235, 275, 305, 315, 325, 335, 345, 355, 375, 385};
int jsaList2[] = {110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 270, 280, 320, 350, 400};
Array list1 = new Array(jsaList1,"List #1");
Array list2 = new Array(jsaList2,"List #2");
Array list3 = new Array("Merged List");
list3.merge(list1,list2,list3);
list1.display();
list2.display();
list3.display();
}
}
class Array
{
private ArrayList<Integer> list;
private int size;
private String listName;
public Array(String ln)
{
list = new ArrayList<Integer>();
size = 0;
listName = ln;
}
public Array(int[] jsArray, String ln)
{
list = new ArrayList<Integer>();
size = jsArray.length;
listName = ln;
for (int j = 0; j < size; j++)
list.add(new Integer(jsArray[j]));
}
public void display()
{
System.out.println("\n" + listName + ":\n");
System.out.println(list + "\n");
}
public void merge(Array that, Array theOther, Array result)
{
{
// Merge both halves into the result array
// Next element to consider in the first array
int iFirst = 0;
// Next element to consider in the second array
int iSecond = 0;
// Next open position in the result
int j = 0;
// As long as neither iFirst nor iSecond is past the end, move the
// smaller element into the result.
while (iFirst < that.size && iSecond < theOther.size)
{
if (that.list.get(iFirst) < theOther.list.get(iSecond))
{
result.list.add(that.list.get(iFirst));
iFirst++;
}
else
{
result.list.add(theOther.list.get(iSecond));
iSecond++;
}
j++;
}
}
}
}
有什麼錯收藏品ns.sort()? – hd1