# Integer einen HashSet hinzufügen.



## big_boom_bang (16. April 2006)

Hi, 
also ich hab eine Frage und zwar möchte ich int Zahlen einen hashSet hinzufügen
und sie dort der größe nach sortieren. 
Ich weiß bisjetzt nur das ich keine ints dem hashSet hinzufügen kann sondern nur Integer-Objekte. Und zwar dachte ich bis jetzt das dies so geht:

```
Integer i = new Integer(5);
HashSet hs = new HashSet();
hs.add(i);// Hier bekomme ich jedoch einen Error
```
Also wie füge ich Zahlen einem hashSet hinzu
Bitte helft mir da ich es dringend brauche
MFG bigboombang


----------



## Thomas Darimont (16. April 2006)

Hallo!

Welchen Fehler bekommst du denn?

Gruß Tom


----------



## big_boom_bang (16. April 2006)

Hi also ich bekomme folgenden Fehler:
HashSet.java5: cannotFind Symbol
symbol: method add(java.lang.Integer);
location hs.add(i);


----------



## Thomas Darimont (16. April 2006)

Hallo!

Funktioniert wunderbar:

```
/**
 * 
 */
package de.tutorials;

import java.util.HashSet;
import java.util.Set;

/**
 * @author Tom
 *
 */
public class SetExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add(new Integer(10));
        System.out.println(set);
    }

}
```

Gruss Tom


----------



## big_boom_bang (16. April 2006)

Danke dann war ich wohl zu blöd hab ja ein HashSet gemacht und kein Set so wie du!
MFG bigboombang


----------



## Thomas Darimont (16. April 2006)

Hallo!

Das hat nichts damit zu tun. Ich sehe gerade, dass die Klasse in der du "testest" auch HashSet heißt... benenne diese doch mal um in HashSetExample 
Du möchtest jedoch java.util.HashSet verwenden ;-) Ich würde mal sagen, dass ist ein typischer Fall von selbst in den Fuß geschossen...

Gruss Tom


----------



## big_boom_bang (16. April 2006)

Oh *@it stimmt das mir sowas passiert.
Danke nochmal
MFG bigboombang


----------



## big_boom_bang (16. April 2006)

Hallo!
also der Fehler ist weg, aber wenn ich das HashSet ausgebe, dann ist es nicht sortiert. Es ist zwar anders sortiert ber nach einem mir nicht erkennbarem Muster.Wie kann ich also die Werte der Größe nachsortiert ausgeben?

```
Integer i = new Integer(1);
Integer i1= new Integer(4);
Integer i2 = new Integer(5);
Integer i3 = new Integer(8);
Integer i4 = new Integer(2);
HashSet hs = new HashSet();
hs.add(i);
hs.add(i1);
hs.add(2);
hs.add(i3);
System.out.println(hs);//In etwa so 4,1,8,5,2
hs.add(i4);
```
Also wie kann ich das sortieren
MFG bigboombang


----------



## Thomas Darimont (16. April 2006)

Hallo!

Wenn du ein Set sortiert halten möchtest, musst eine eine SortedSet Implementierung wie beispielsweise TreeSet verwenden.

```
/**
 * 
 */
package de.tutorials;

import java.util.Set;
import java.util.TreeSet;

/**
 * @author Tom
 * 
 */
public class SetExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Set set = new TreeSet();
        set.add(new Integer(10));
        set.add(new Integer(3));
        set.add(new Integer(4711));
        System.out.println(set);
    }

}
```

Btw. unter Java 5 kannst du auch folgendes schreiben:

```
Set<Integer> set = new TreeSet<Integer>();
		set.add(10);
		set.add(3);
		set.add(4711);
		set.add(2);
		System.out.println(set);
```

...oder explizit:

```
Set<Integer> set = new TreeSet<Integer>();
		set.add(Integer.valueOf(10));
		set.add(Integer.valueOf(3));
		set.add(Integer.valueOf(4711));
		set.add(Integer.valueOf(2));
		System.out.println(set);
```

Möchtest du die hingegen die Reihenfolge beibehalten in der die Elemente dem Set hinzugefügt wurden, so musst du ein LinkedHashSet verwenden.

Gruß Tom


----------

