» »

[Java] Preverjanje polja za iste stringe

[Java] Preverjanje polja za iste stringe

c0dehunter ::

No, delam en program, ki shrani vsak string v polje. Zdej bi pa želel, da bi šel čez celo polje in preverjal če je kakšen duplikat (če sta dva enaka stringa).

Poskusil sem z tem, pa ne dela:
for(int j=0; j < 1000; j++){
	      for(int k=j+1; k < 999; k++){
		      if(polje[k].equals(polje[j])){
			      polje[k]="";
		      }
	      }
      }
I do not agree with what you have to say,
but I'll defend to the death your right to say it.

moowy123 ::

Ti naredi takole ... Imej en hashset in lepo za vsak string (ki ti bo služil kot ključ) shrani njegov števec ponovitev. Na koncu pogledaš za vsak vpis v ta hashet (preko iteratorja po ključih) če se je kateri od teh stringov pojavil več kot 1x (to ti bo števec lepo povedal).

Vsekakor pa ne delaj tako kot si sedaj... Se da narest na dokaj podoben način (vendar vseeno dovolj različen, da nebi prepoznal podobnosti) :).

c0dehunter ::

Hvala moowy, sem malo pogooglal za "hashset" in izgleda res uporabno za take stvari. Sam sem še bolj kot ne začetnik, zato za hashset še nikoli nisem niti slišal.
I do not agree with what you have to say,
but I'll defend to the death your right to say it.

c0dehunter ::

Bi lahko mogoče naredil čisto mal sample code, da vidim kako izgleda, ker ne vem kako bi se iterator reklo po angleško.

Recimo da imam naslednje stringe: danes, jutri, pridem, danes, domov, jutri.
Kako bi to shranil v hashset in potem pregledoval z metodo ki si mi jo napisal?
I do not agree with what you have to say,
but I'll defend to the death your right to say it.

Steinkauz ::

HashSet bla = new HashSet();
bla.add("danes");
...
Iterator iter = bla.iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}

infiniteLoop ::

HashSet (kot tudi vsak Set) ne dovoli duplikatov. Preglejte malo API za Set. n00bz0rz :P

edit: Torej ce bos uporabljal Set ne bos nikoli imel duplikaotv v njem in ti tega tudi ne bo treba preverjati.
None of us is as dumb as all of us.

Zgodovina sprememb…

Steinkauz ::

No sej zato mu sploh ne bo treba gledat za duplikate.

moowy123 ::

Lahko se uporabi ogromno podatkovnih struktur (primer hashmap) in z vsako se da doseči cilj, tako da se lahko pogovarjamo tudi brez uporabe g33k jezika :).

To seveda vključuje vse hash-related podatkovne strukure, kot tudi druge, malce manj hash obarvane :).

Zgodovina sprememb…

  • spremenilo: moowy123 ()

infiniteLoop ::

Ah 1337sp43< pa gotovo pripomore pri vsaki programerski debati.... :D Ziher se nivo debate dvigne vsaj za 20%.

Drugace pa naj pripomnim, da ceprav je mozno problem resiti tudi HashMap je to precej prismuknjena domislica (brez zamere). Sicer je mozno ampak cisto brez veze, ker je unikatnost zagotovljena samo na kljucih in se to tako, da se za shranjevanje kljucev uporabi Set. Ce noces duplikatov pac uporabis neko vrsto Seta.

"Hashavost" podatkovne strukture pod nobenim pogojem ne zagotavlja, da le-ta ne bo shranjevala duplikatov in tudi ce struktura ne uporablja hasha (hmmm..... zakaj me to spominja na kako amsterdamsko debato) lahko zavre duplikat - glej TreeSet. Ergo: hash nima veze z duplikati (vecinoma se uporablja za pospesitev dostopa do podatkov).
None of us is as dumb as all of us.


Vredno ogleda ...

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

SQL inner join

Oddelek: Programiranje
393035 (2290) smacker
»

[Java - DN] Naključna števila

Oddelek: Šola
121281 (810) nyler
»

java problem

Oddelek: Programiranje
7691 (571) Sergio
»

C# HashSet<T>, HashTable kako deluje iskanje v ozadju? a lahko faila?

Oddelek: Programiranje
121479 (1260) detroit
»

[Java] Frekvenca besed

Oddelek: Programiranje
71228 (1082) zila90

Več podobnih tem