Comment convertir le hachage Défini dans le tableau à l'aide de toArray() si la méthode toArray n'est pas spécifié?
Regardant l'api java pour java collections cadre, je ne pouvais pas trouver la méthode toArray() dans HashSet, il est la méthode toArray() dans la classe abstraite Définie.
class Ideone {
public static void main (String[] args) throws java.lang.Exception {
Set x = new HashSet();
x.add(4);
//ArrayList<Integer> y = x.toArray(); this does not work !
int[] y = x.toArray();//this does not work!
System.out.println(x.toArray());//this gives some weird stuff printed : Ljava.lang.Object;@106d69c
}
}
Comment puis-je convertir des hashset dans le tableau si il n'y a pas de toArray() spécifié?
eh bien, le toArray retourne un
exactement. C'est ce que j'ai écrit dans ma réponse mais sa downvoted. Je ne suis pas sûr de ce qui est de la question dans la réponse. Quelqu'un peut-il expliquer svp afin que je puisse m'améliorer
probablement parce que vous avez seulement d'expliquer le résultat de l'impression, pas pourquoi la première ligne ne fonctionne pas, ni quelle serait la bonne façon - mais c'est bien sûr qu'une supposition
Merci luk. je n'avais pas fait attention qu'il y est une question de plus. Va expliquer que trop
Object[]
, juste l'impression que vous donne la java typiques de sortie si la toString n'est pas correctement remplacée. Et un Object[]
n'est pas implicitement convertible int[]
.exactement. C'est ce que j'ai écrit dans ma réponse mais sa downvoted. Je ne suis pas sûr de ce qui est de la question dans la réponse. Quelqu'un peut-il expliquer svp afin que je puisse m'améliorer
probablement parce que vous avez seulement d'expliquer le résultat de l'impression, pas pourquoi la première ligne ne fonctionne pas, ni quelle serait la bonne façon - mais c'est bien sûr qu'une supposition
Merci luk. je n'avais pas fait attention qu'il y est une question de plus. Va expliquer que trop
OriginalL'auteur ERJAN | 2015-11-08
Vous devez vous connecter pour publier un commentaire.
Bien sûr
HashSet
implémentetoArray
. Il doit mettre en œuvre, puisqu'il met en œuvre laSet
interface, qui spécifie cette méthode. La mise enAbstractCollection
qui est la super classe deAbstractSet
qui est la super classe deHashSet
.Tout d'abord, vous ne devriez pas utiliser des types.
Utilisation :
Ensuite convertir en tableau :
À l'aide de
x.toArray()
serait de vous donner unObject[]
.Ouais c'est parce qu'il utilise ensuite la
Object
la classe, et les versions en boîte de ces primitives étendreObject
.OriginalL'auteur Eran
Assurez-vous que vous déclarez le générique pour le
HashSet
Et le convertir en un tableau comme ceci:
OriginalL'auteur SamTebbs33
Il semble que vous vouliez à l'origine pour créer une liste de tableaux plutôt qu'un simple Tableau. Alors, essayez ce!
OriginalL'auteur paiego
Première Ligne
Tout d'abord vous avez utilisé
Set x = new HashSet();
je.e crue de type . Compilateur ne sait pas qu'il va contenir entier objet, mais avec au-dessus de la ligne sur le côté gauche de vous dire sa va etre liste de tableaux d'entiers où, en fait, de son un tableauDeuxième ligne
avec au-dessus de la ligne sur le côté gauche de vous dire sa va etre tableau d'entiers à la où son un tableau d'objets
Cela fonctionne
Mais ce n'est pas de la bonne façon . Vous ne devriez pas utiliser des types
Son impression toString représentation de l'objet array . C'est pourquoi vous voyez comme
Ljava.lang.Object;@106d69c
Si vous souhaitez imprimer chaque élément , itérer sur elle, puis l'imprimer.
je upvoted vous revenir pour donner une meilleure réponse
OriginalL'auteur M Sach
Comparaison dans le JDK 7 tri d'une petite carte, à l'aide de
TreeSet
,ArrayList
etArray
:Rendements:
OriginalL'auteur sjzack