Integer einen HashSet hinzufügen.

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:
Code:
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
 
Hallo!

Funktioniert wunderbar:
Code:
/**
 * 
 */
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
 
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
 
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?
Code:
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
 
Hallo!

Wenn du ein Set sortiert halten möchtest, musst eine eine SortedSet Implementierung wie beispielsweise TreeSet verwenden.
Code:
/**
 * 
 */
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:
Code:
Set<Integer> set = new TreeSet<Integer>();
		set.add(10);
		set.add(3);
		set.add(4711);
		set.add(2);
		System.out.println(set);

...oder explizit:
Code:
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
 
Zurück