» »

[java] ArrayList, String[]

[java] ArrayList, String[]

icurk ::

Pozdravljeni,

zanime me, kako lahko najlažje naredim naslednje. Imam string array z elementi recimo {"1", "2", "3", "4", "5"} ter arraylist z elementi{"2", "3"}.
Kar bi rad naredil je, da bi iz string arraya izbrisal elemente, ki so v arraylist. Torej v mojem primeru bi rad dobil ven string array z elementi {"1", "4", "5"}.

Arto ::

Naredi nov arraylist, pejt s for zanko čez string array in dodajaj elemente, ki jih ni v {"2","3"} v svoj novi arraylist (mislim, da imaš metodo contains()). Ko končaš lahko izvedeš še .toArray() na novem arraylistu, če hočeš array.

icurk ::

Naredil sem naslednje in se mi aplikacija ustavi... Sem šel debugat in je pokazalo, da je i že v prvem obhod zanke 4 (allBooks.length vrne 4 v mojem primeru). Zakaj to?

int i = 0;
				ArrayList<String> missingBooks = new ArrayList<String>();
				for (i = 0; i < allBooks.length; i++);{
					if (!books.contains(allBooks[i])){
						missingBooks.add(allBooks[i]);
					}
				}

icurk ::

Že vem :) podpičje se mi je skrilo takoj za for zanko :/

icurk ::

Se vedno pa mi ukaz
String[] books = missingBooks.toArray vrne izjemo :/

kunigunda ::

ArrayList as = new ArrayList(Arrays.asList("A","B","C","D")) ;
ArrayList ad = new ArrayList(Arrays.asList("B","C")) ;
as.removeAll(ad) ;

ti bo zbrisal B in C iz 'as' arraylista.

icurk ::

Ze ze, sam js mam en String array, pa tud vrnit moram string array.
Arraylist sem ze dobil, taksnega kot ga zelim, samo v tabelo stringov mi ga noce pretvorit...

Arto ::

Sej ga lahko prov s for zanko ane.

String[] returnArray = new String[TvojArrayList.size()];
for(int i=0; i<returnArray.length; i++){
    returnArray[i] = TvojArrayList.get(i) // Tole nisem čis ziher kako je funkcija za element na indeksu
}

return returnArray;

kunigunda ::

Object books[]=as.toArray() ;

Se cela koda:
String ss[]={"A","B","C","D"};
String dd[]={"B","C"};
ArrayList as = new ArrayListArrays.asList(ss)) ;
ArrayList ad = new ArrayList(Arrays.asList(dd)) ;
as.removeAll(ad);
Object s[]=as.toArray() ;


Ceprov ne vem zakaj ne uporabljas Collection objektov namesto arrayov.

Zgodovina sprememb…

  • spremenilo: kunigunda ()

icurk ::

Collectionov ne uporabljam, ker sem bolj zacetnik v javi in jih nisem poznal. Si jih bom pa pogledal, ker sem malo pogooglal in naj bi bli kar uporabni.

golobich ::

String[] vrni = new String[missingBooks.size()];
missingBooks.toArray(vrni);
return vrni;


Tale del kode ti vrne tabelo tipa String.

Lp, golobich

icurk ::

No hvala za odgovor ampak sem tezavo ze resil. Metoda toArray mi ni delala, ker velikost tabele stringov ni bila dolocena.

Spura ::

Samo da ne bos teh n^2 algoritmov v kako resno kodo dajal.

icurk ::

Ma ne nebom, samo v diplomo :) pisem eno aplikacijo za androida, ampak bo ta n zelo majhen, tako da nebo obcutit casovne zahtevnosti algoritma.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java - DN] Naključna števila

Oddelek: Šola
121276 (805) nyler
»

[Java] Integer ali int za List

Oddelek: Programiranje
142082 (1597) noraguta
»

Java skeniranje map in podmap

Oddelek: Programiranje
61068 (957) nightrage
»

Rekurzija v javi z ArrayList

Oddelek: Programiranje
81459 (1302) marjan_h
»

Java-random-polje

Oddelek: Programiranje
6876 (755) LeQuack

Več podobnih tem