ho un vettore di interi....devo eliminare i doppi solo non ci riesco come devo fare?avevo pensato di creare un secondo array uguale al primo e scorrerli con due cicli for innestati...ma non mi da il risultato voluto..consigli??
ho un vettore di interi....devo eliminare i doppi solo non ci riesco come devo fare?avevo pensato di creare un secondo array uguale al primo e scorrerli con due cicli for innestati...ma non mi da il risultato voluto..consigli??
Prima di tutto bisognerebbe capire cosa intendi per eliminare i doppi, ti basta che questi siano settati a null o a -1, oppure vuoi proprio eliminarli dall'array (suppongo che per vettore intendi un array e non un java.util.Vector)
un vettore è un arraylist, per eliminare doppi intendo se ci sono due numeri uno devo cancellarlo e l altro deve restare
se è un ArrayList e abbastanza semplice (PSEUDO CODICE):
codice:Iterator<Integer> iterator = arrayList.iterator(); int index = 0; while(iterator.hasNext()) { int element = iterator.next(); for(int i =0; i < arrayList.size(); i++) { int elementTwo = arrayList.get(i); if(element == elementTwo && index != i) { iterator.remove(); } } index++; }
grazie..ma index a cosa serve?
Bè direi che il fulcro ti serve a sapere se è un doppione cioè se la posizione del primo elemento coincide con il secondo allora è proprio quell'elemento altrimenti è un doppione.
Accettando il fatto di ottenere una nuova lista e sfruttando le collezioni si può anche fare:
(se non importa l'ordine):
List<TuoTipo> listaNuova = new ArrayList<TuoTipo>(new HashSet<TuoTipo>(listaOriginale));
(se importa l'ordine):
List<TuoTipo> listaNuova = new ArrayList<TuoTipo>(new LinkedHashSet<TuoTipo>(listaOriginale));
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Se non posti quello che hai scritto è un po' difficile capire perché non ti da il risultato voluto...Originariamente inviato da rossonero922
ho un vettore di interi....devo eliminare i doppi solo non ci riesco come devo fare?avevo pensato di creare un secondo array uguale al primo e scorrerli con due cicli for innestati...ma non mi da il risultato voluto..consigli??![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
non mi funzionano nessuno dei metodi proprosti.....
comunqu io avevo fatto cosi
l arrayList file1 contiene numeri letti da due file e ordinati(da me) fino a questo punto mi funziona poi ora che devo ordinare i doppi non ci riesco....con questo pezzo di codice ho tentato di toglierli ma non va....codice:ArrayList<File1>fileb=file1; for(int i=0;i<file1.size();i++) { for(int h=0;h<fileb.size();h++) if(file1.get(i)==fileb.get(h)); file1.remove(i); } return file1;
Scusa ma la classe "File1" che robba è cmq sia è sbagliato == dell'if gli oggetti si confrontano sempre con .equals (ovviamente se quella è una tua classe devi implementare questo metodo)