# Arrays nach Wert durchsuchen



## Helft mir bitte (30. Mai 2004)

Ich habe ein Array, welches ich nach einem bestimmten Schlagwort durchsuchen möchte.

Beispiel:

Array mit dem Inhalt "Fuchs", "Schlange", "Maus". In einer IF-Verzweigung möchte ich nun festellen, ob das Wort Fuchs in dem Array vorhanden ist und daraufhin einen bestimmten Befehlslock ausführen. (mich interessiert nicht die Position, nur das ob...)

Wie macht man sowas mit einem Array?

Für guten Rat wäre ich sehr dankbar  :toll:


----------



## stev.glasow (30. Mai 2004)

so in der Art:

```
for(int i=0; i < arr.length; i++){
    if(arr[i].equals("hase")){
         ....
    }
}
```


----------



## Helft mir bitte (30. Mai 2004)

Hmmm... Gibt`s keinen richtigen Befehl dafür?


----------



## stev.glasow (30. Mai 2004)

Helft mir bitte hat gesagt.:
			
		

> Hmmm... Gibt`s keinen richtigen Befehl dafür?


Ne, wieso? Ist das nötig?


----------



## CyberKane (21. Jun 2004)

Ich wollte gerade einen neuen Thread aufmachen, als ich diesen hier fand. Und zwar habe ich eine mehr oder weniger weiterführende Frage zu diesem Thema:

(ich weis nicht genau, aber es könnte etwas kniffelig sein...)

Und zwar habe ich ein Array mit mehreren Integer-Werten. Ich möchte nun mein Array nach einem bestimmten Wert, der auf jedem Fall in dem Array vorhanden ist durchsuchen. Erhalten möchte ich lediglich die Index-Position im Array, an der der Wert vorhanden ist. Kann mir da jemand weiterhelfen?

Ich hab schon etwas im www herumgesucht aber noch nix brauchbares für dieses Problem gefunden. Wäre wirklich toll wenn hier jemand helfen könnte.  :toll:


----------



## Illuvatar (21. Jun 2004)

Es gibt die Klasse java.util.Arrays.


----------



## Reality (21. Jun 2004)

```
int position= Arrays.binaraySearch(array, wert);
```
Gibt dir die Position zurück.

Liebe Grüße
Reality


----------



## thE_29 (22. Jun 2004)

und wennst zu einer bestimmten Zahl einen bestimmten Teil brauchst, nimm ne HashTable!


```
Hashtable keytable;
keytable=new Hashtable();
//musst halt befüllen
String key="WENNBLA";
String value="format c:\\";
// Schreiben Daten in Hashtable
keytable.put(key, value);

//suchen
String ergebnis = (String)keytable.get(key); //wobei Key der Schlüssel ist!
```

zeitweis ist das recht net


----------



## rastaman (22. Jun 2004)

@CyberKane

sowas sollte auch gehen:

```
for(int i=0; i < arr.length; i++){
    if(arr[i].equals("hase")){
         int position = i;
    }
}
```

nur so von wegen knifflig...


----------



## bygones (22. Jun 2004)

ich denke für CyberKanes problem ist Realitys Lösung die beste.... die binärsuche ist verdammt schnell und wenn es nur um den index geht ... warum mehr aufwand betreiben ?!


----------



## CyberKane (22. Jun 2004)

Ja es geht einzig und allein um den Index. Danke für eure schnelle und gute Hilfe!


----------



## Stefan1200 (22. Jun 2004)

deathbyaclown hat gesagt.:
			
		

> ich denke für CyberKanes problem ist Realitys Lösung die beste.... die binärsuche ist verdammt schnell und wenn es nur um den index geht ... warum mehr aufwand betreiben ?!



Für beide Probleme eine gute Lösung, denn wenn ein Hase nicht darin vor kommt, dann müsste binarySearch ja -1 zurück geben.

Laut API Doku funktioniert aber binarySearch nur dann richtig, wenn man vorher sort() über das Array ergehen lässt.
Falls das nicht vorher geschieht, könnte es ein Problem für CyberKanes Problem werden...was für ein Satz ;-)


----------



## Roar (22. Jun 2004)

hmm wieso machst du aus dem array nicht ne collection?

```
List l = Arrays.asList(myArray);
if(l.contains("hase")) {
blubb()
}
```


----------



## bygones (22. Jun 2004)

oh ne nicht schon wieder schreiben wieviele Möglichkeiten es gibt  :bae:  :roll:  :wink:  :autsch:


----------



## Roar (22. Jun 2004)

:bae:  :bae: ich finds so besser und einfacher. und mit ner Collection kann man fiiieeel  mehr machen als mit nem array


----------



## bygones (22. Jun 2004)

Roar hat gesagt.:
			
		

> :bae:  :bae: ich finds so besser und einfacher. und mit ner Collection kann man fiiieeel  mehr machen als mit nem array


das schon - aber du arbeitest hier mit dem Typ List nicht mit Collection  :bae:  :wink: sorry kleiner Scherz....


----------

