# Position in ArrayList ermitteln



## Reen (16. Jul 2007)

Hallo!

Wie bekomme ich den Index in einer ArrayList heraus, unter dem das Element z.B. mit der "contains" - Methode den gesuchten String gefunden hat? Mit "indexOf" klappts irgendwie nicht!

Danke
Reen


----------



## SlaterB (16. Jul 2007)

> klappts irgendwie nicht

gute Beschreibung, ich würde sagen: klappt irgendwie doch,
zumal contains ja auch nur indexOf benutzt:


```
/**
     * Returns <tt>true</tt> if this list contains the specified element.
     *
     * @param elem element whose presence in this List is to be tested.
     * @return  <code>true</code> if the specified element is present;
     *		<code>false</code> otherwise.
     */
    public boolean contains(Object elem) {
	return indexOf(elem) >= 0;
    }
```


----------



## Reen (16. Jul 2007)

Hmmm....also irgendwie bekomme ich das nicht hin.

Hier mal bissl Code.


```
public class RENAME extends KETTE {

	private static final long serialVersionUID = 1L;

	public static boolean check(String name_alt, String name_neu)
	{
		if ((name_alt != null && name_neu != null)) {
			if (globaleVAR.usednames.contains(name_alt) == false)	{
				System.out.println(" !String existiert nicht!");
				//indexOf(name_alt);
				return false;
			}}
      else { return false; }

      return true;
   }
```

Wie soll ich deine Funktion jetzt hier dran umsetzen?


Danke
Reen


----------



## Marco13 (16. Jul 2007)

Oh oh - als jemand gesagt hat, dass man Klassennamen GROSS schreibt, hast du etwas mißverstanden...

Und ansonsten müßtest du die Frage präzisieren

```
ArrayList a = new ArrayList();
a.add("Hallo");
a.add("Java");
a.add("Welt");
System.out.println(a.contains("Java")); // gibt true aus
System.out.println(a.indexOf("Java")); // gibt 1 aus
```
Was willst du denn machen?


----------



## Reen (16. Jul 2007)

Möchte die Position ermitteln, indem der alte String liegt, damit ich diesen durch den neuen String ersetzen kann.

Das wollte ich eigentlich machen!


EDIT: Warum sollte man Klassennamen nicht groß schreiben?


----------



## Marco13 (16. Jul 2007)

Man SOLLTE Klassennamen Groß schreiben - aber nicht ganz, sondern nur den ersten Buchstaben jedes Wortes... SoWieInAllenJavaKlassenEben... Aber es gibt schlimmeres. (Globale Variablen, zum Beispiel  :bae: )

Wie auch immer - das, was du gepostet hast, mit möglichst wenigen Änderungen (die bitter nötig wären) nur um die erfragte Funktionalität erweitert:

```
public class RENAME extends KETTE {

   private static final long serialVersionUID = 1L;

   public static boolean check(String name_alt, String name_neu)
   {
      if ((name_alt != null && name_neu != null)) {
         if (globaleVAR.usednames.contains(name_alt) == false)   {
            System.out.println(" !String existiert nicht!");
            //indexOf(name_alt);
            return false;
         }
         //------------------------>------------------
         else
         {
              int index = globaleVAR.usednames.indexOf(name_alt);
              globaleVAR.usednames.set(index, name_neu);
             System.out.println("Feeeertig!!!");
         }
         //------------------------<------------------
      }
      else { return false; }

      return true;
   }
```


----------

