Sto provando a "combinare" due liste di array, producendo una nuova lista di array che contiene tutti i numeri nelle due liste di array combinate, ma senza elementi duplicati e dovrebbero essere in ordine. Ho trovato questo codice qui sotto. Lo percorro e ha senso per me, ma non sono sicuro se posso usare < o> per confrontare ottenere (i) nelle liste di array. Sto aggiungendo tutti gli elementi di array1 nel plusArray. Quindi sto passando attraverso plusArray e confrontandolo con array2 per vedere se esiste uno qualsiasi degli elementi di array2 all'interno di plusArray. Se lo fanno, non sto facendo nulla, ma se non lo fanno, sto cercando di aggiungerlo nella sua posizione corretta. Forse il mio nested for loop è stato usato in modo errato? Nota: le liste di array sono preselezionate dall'utente in ordine crescente.Unione di due elenchi di array in una nuova lista di array, senza duplicati e in ordine, in Java
ArrayList<Integer> plusArray = new ArrayList<Integer>();
for(int i = 0; i < array1.size(); i++){
plusArray.add(array1.get(i));
}
for(int i = 0; i < plusArray.size(); i++){
for(int j = 0; j < array2.size(); j++){
if(array2.get(j) < plusArray.get(i)){
plusArray.add(i,array2.get(j));
}
else if(plusArray.get(i).equals(array2.get(j))){
;
}
else if(array2.get(j) > plusArray.get(i)){
plusArray.add(i, array2.get(j));
}
}
AGGIORNAMENTO: Non ottengo più l'eccezione qui sotto. Invece sembra che il programma funzioni per sempre. Ho cambiato la posizione in cui aggiungere gli elementi nelle condizioni < e>. /// Ecco l'eccezione che ho quando le mie liste di array sono: IntSet 1: {1} 2 IntSet 2: {1} 3 4
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at IntSet.plus(IntSet.java:92)
at IntSetDriver.main(IntSetDriver.java:61)
Si prega di inviare l'eccezione che si ottiene. –