Java-Objekt zu int: ein besserer Weg?

7

Ich habe ein TreeSet, das voll von ganzen Zahlen ist. Um es kurz zu machen: Ich versuche eine Schleife nach dem letzten (größten) in der Liste gespeicherten Wert zu erstellen. Was ich jetzt mache, um die Startvariable zu bekommen, ist:

%Vor%

Ich bin mir sicher, dass es einen besseren Weg geben muss, um ein Objekt (von dem ich weiß, dass es immer ein int ist) in den int 'start' zu werfen. Wer kennt einen besseren Weg, dies zu tun?

    
Jeremy 20.05.2009, 20:47
quelle

6 Antworten

8

Verwenden Sie Java Version 1.6? In diesem Fall können Sie Autoboxing und Generics nutzen, um den Code aufzuräumen.

Erstens kann das TreeSet so deklariert werden, dass es nur Integer-Objekte enthält

%Vor%

Nun, um das Objekt aus der Menge zu bekommen, können Sie

%Vor%

und Verwendung der Autoboxing-Funktion, die Sie erhalten

%Vor%     
Vincent Ramdhanie 20.05.2009, 20:53
quelle
8

In J2SE 5 oder höher geschieht dies automatisch mit der "Autoboxing" -Funktion.

%Vor%

Ссылка

Wenn Sie wissen, dass es sich um Integer-Objekte handelt, verwenden Sie den parametrisierten Typ:

%Vor%

Kombinieren Sie es dann mit der Autobox-Funktion:

%Vor%     
jbm 20.05.2009 20:50
quelle
4

Wenn Sie wissen, dass sie "int" waren, als sie eingefügt wurden, wurden sie in der Collection in Integer umgewandelt (Collections können keine Primitive, nur Objekte enthalten). Sie können also einfach Integer last = (Integer)lastObj; .

Im Idealfall würden Sie jedoch ein TreeSet<Integer> verwenden und dann würden Sie nur Ganzzahlen an erster Stelle füttern.

    
lostlogic 20.05.2009 20:50
quelle
4

Wenn Sie wissen, dass primes nur ganze Zahlen enthält, sollten Sie primes zu TreeSet<Integer> machen.

Es würde dann werden:

%Vor%

Wenn Sie keine Generika verwenden können, verwenden Sie Folgendes:

%Vor%

In eine Zeichenfolge zu werfen wäre einfach albern.

Ich schlage übrigens nicht vor, Autoboxing zu verwenden. Es macht alle möglichen Dinge hinter deinem Rücken. Die explizite Verwendung von Integer scheint mir klarer zu sein. Aber das ist nur meine persönliche Vorliebe, Sie können Autoboxing verwenden, wenn Sie möchten.

    
Zifre 20.05.2009 20:54
quelle
3

Nach Java 1.4 können Sie Autoboxing verwenden.

So wird es,

%Vor%

Wenn Sie Generics mit Ihrem TreeSet ( TreeSet<Integer> ) verwendet haben, können Sie den ursprünglichen Cast in Integer entfernen.

    
James McMahon 20.05.2009 20:51
quelle
2

Warum können Sie es nicht einfach umwandeln, statt es in eine Zeichenkette umzuwandeln, diese Zeichenkette dann zu analysieren und eine neue Referenz zu erstellen?

%Vor%     
Ryan Emerle 20.05.2009 20:52
quelle

Tags und Links