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?
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% 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.
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.
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.
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%