Combina la classifica con Arraylist in Java: Java, Array, Arraylist, MergeSort, Array-Merge

Sto cercando di unire questi elenchi di disposizione. List3 è l’ultimo. Tutto funziona bene, ma l’ultimo numero, 400, non apparirà nella matrice finale. Non ho idea del perché o cosa fare. Sto cercando di ordinare l’arraylist e sono quasi pronto tranne che per l’ultimo numero che non appare.

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 ));}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 arrayint iFirst = 0;// Next element to consider in the second arrayint iSecond = 0;// Next open position in the resultint 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++;}}}

}

Risposte

4 per la risposta № 1

Dopo il loop in esecuzione su entrambe le matrici:

Devi vedere se c’è qualcosa Ciò rimane in una delle matrici dopo aver raggiunto la fine dell’altro:

1 per la risposta №

// this condition stops when you reach the end of either list// you need to continue until you reach the end of both listswhile (iFirst < that.size && iSecond < theOther.size)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *