# ArrayList mit Integer Werten



## Cjava (2. Mai 2009)

Hallöchen!
Bräuchte mal bitte etwas Hilfe:


   	/*   

   	Schreiben Sie eine Klasse zum Speichern von Integer-Werten. Zur Speicherung der Werte soll die Klasse als Attribut eine ArrayList besitzen. Ferner soll die Klasse folgende Methoden beinhalten:

	Methode zum Speichern eines einzelnen int-Wertes 
	Methode zum Speichern eines kompletten Arrays mit int-Werten 
	Methode zum Löschen eines einzelnen int-Wertes 
	Methode zur Feststellung, ob ein bestimmter int-Wert schon in der ArrayList gespeichert ist 
	Methode zum aufsteigenden Sortieren der ArrayList 
 	*/


import java.util.*;  // Das  Package enthällt sämtliche Interface die für die Datenstruktur benötigt werden.
public class SaveInteger  // Eine Klasse zum schreiben von Integer-Werten wird erstellt.
{
	ArrayList<Integer> arrList = new ArrayList<Integer>();		// Die List wird als ArrayList mit String-Elementen definiert.  


	void saveInt(int numbers)    // Methode zum Speichern eines einzelnen int-Werts
	{
		arrList.add(new Integer(numbers));
	}

	void saveArry(int arrnumber) // Methode zum Speichern eines kompletten Array mit Integer-Werten.
	{
		int[] array = new int[arrnumber];

		for (int i = 0; i < array.length; i++)
		array_ = i * i;

	}

	 boolean removeInteger(int number)	// Methode zum Löschen eines einzelnen int-Werts.
	{
		return arrList.remove(new Integer(number));
	}

	boolean contains(int number)		// Methode zum Festellen, ob ein bestimmter int-Wert schon in der ArrayList gespeichert ist
	{
		return arrList.contains(new Integer(number));
	}

	void sort()		// Methode zum Sortieren des Inhalts der Arraylist.
   {
      Collections.sort(arrList);
   }


}


Soweit sollte die Klasse eigentlich richtig sein. Jetzt will das mit ein Main Klass gerne testen, krieg das aber noch nicht so genau hin. Will nur ganz einfach mir die Werte ausgeben lassn. Mein Können und Wissen stockt grad ein wenig :-(

public class test extends SaveInteger
	{
	public static void main(String[] args)
	{
			SaveInteger svI = new SaveInteger();



			svI.saveInt(3);
			svI.saveArry(8);



	}
}_


----------



## ARadauer (2. Mai 2009)

warum erbt deine testklasse von SaveInteger? Bitte nicht meinen, dass du aus diesem grund die Klasse in Test verwenden kannst. Test ist dann ein SaveInteger.. macht keinen sinnn...

also was willst du jetzt machen? die int werte ausgeben? willst du dafür eine Methode in SaveInteger haben?

zb so


```
public void ausgabe(){
		for(Integer i: arrList){
			System.out.println(i);
		}
		
		// oder
		for(int i = 0; i < arrList.size(); i++){
			System.out.println(arrList.get(i));
		}
	}
```


----------



## Cjava (2. Mai 2009)

ist mir jetzt ein wenig peinlich, aber ich will sie einfach nur testen, bzw. ganz simple, was ich davor gemacht habe


----------



## Ezra (2. Mai 2009)

Ich würde an Deiner Stelle auch eine Methode für die Ausgabe der Werte schreiben - siehe ARadauer.
Was spricht dagegen?

Edit: Noch etwas 


> void saveArry(int arrnumber) // Methode zum Speichern eines kompletten Array mit Integer-Werten.
> {
> int[] array = new int[arrnumber];
> 
> ...


_
Hier sollst Du doch sicher auch die ArrayList verwenden. 
Abgesehen davon ist diese Methode ziemlich sinnlos, weil das array nicht im Objekt gespeichert wird. Du kannst später nicht mehr darauf zugreifen. Desweiteren verstehe ich die Aufgabe so, dass Du der Methode ein komplettes Array (mit darin enthaltenen Integerwerten) übergibst und nicht nur einen einzelnen Int-Wert mit der Länge des Arrays._


----------



## Cjava (8. Mai 2009)

Eine ergänzende Aufgabe habe ich noch 

Hier die Klasse die ich erstellen musste:

/*
Schreiben Sie eine Klasse zum Speichern von Objekten der Klasse Rechteck. Dabei sollen die Objekte in einer LinkedList gespeichert werden. 
   	Die Klasse soll folgende Methoden besitzen:

	Methode zum Speichern eines Objektes (Anhängen an die Liste) 
	Methode zum Löschen eines Objektes 
	Methode zur Ausgabe der Länge und Breite aller Rechteck-Objekte in der Liste mit Hilfe eines ListIterator-Objektes 

	*/


import java.util.*;  // Das  Package enthält sämtliche Interface die für die Datenstruktur benötigt werden.
public class SaveRechteck extends Rechteck  // Eine Klasse zum schreiben von Objekten der Klasse wird erstellt.
{

	LinkedList<Rechteck> linkList;  // LinkedList (mit Typ Rechteck) wird erstellt.

	SaveRechteck()
	{
		linkList = new LinkedList<Rechteck>();
	}


	Iterator<Rechteck> iter = linkList.iterator();  // Für die LinkedList wird ein Iterator angelegt, der auf das erste Element der Liste zeigt.

	void saveList(Rechteck wert)    // Methode zum Speichern eines Obkjektes.
	{
		linkList.add(wert);
	}

	void removeList(Rechteck wert)	// Methode zum Löschen eines Objektes.
	{
		linkList.remove(wert);
	}

	void getAusgabe()			// Methode zur Ausgabe der Länge und Breite aller Rechteckobjekte
	{
		ListIterator<Rechteck> iter = linkList.listIterator();  // Für die LinkedList wird ein Iterator angelegt, der auf das erste Element der Liste zeigt.


      while (iter.hasNext()) 
      {
      	 Rechteck j = iter.next();
         System.out.println("Rechteck "  + " (Laenge/Breite): " + j.getLaenge() + "/" + j.getBreite());
	  }			

	}




}


Sollte "eigentlich" soweit richtig sein, aber...

...hier das Testprogramm, was auch kompiliert wird.

import java.util.*; 
public class Testit 
{	
public static void main(String[] args) 
{
      SaveRechteck rs = new SaveRechteck();



      Rechteck r1 = new Rechteck(5, 8);
      Rechteck r2 = new Rechteck(19, 7);
      Rechteck r3 = new Rechteck(67, 63);
      Rechteck r4 = new Rechteck(53, 78);
      Rechteck r5 = new Rechteck(3, 567);
      rs.saveList(r1);
      rs.saveList(r2);
      rs.saveList(r3);
      rs.getAusgabe();
      System.out.println("\n");
      rs.saveList(r4);
      rs.saveList(r5);
      rs.removeList(r2);
      rs.removeList(r4);

    }
}

Wenn ich das Programm ausführe, kommt folgende Fehlermeldung:

Exception in thread "main" java.lang.NuppPointerException
             at SaveRechteck.<init><SaveRechteck.java:25>
             at Testit.main<Testit.java:6>

Für Hilfe, Kritik und Verbesserungsvorschläge wäre ich sehr dankbar :-D

Schönen Abend noch!

CJava


----------



## Schandro (8. Mai 2009)

> Iterator<Rechteck> iter = linkList.iterator(); // Für die LinkedList wird ein Iterator angelegt, der auf das erste Element der Liste zeigt.


Mach diese Zeile weg, die ist sinnlos und verursacht die NullPointerException da sie "vor" dem eigentichen Konstruktor ausgeführt wird und deswegen linkList zu der Zeit noch null ist.
Und poste das nächste mal code bitte in java code tags 


Warum erbt RechteckSave eigentlich von Rechteck? Mach das weg.


----------



## Cjava (9. Mai 2009)

Super! Dankeschön!


----------

