Comment créer un tableau de chaîne de vecteurs en Java?
J'utilise le code suivant essayez de créer un tableau de chaîne de vecteurs, j'espère avoir un tableau de 3 éléments, chaque élément est une chaîne de caractères vectorielles :
Vector<String> Result_Vector_Array[]=new Vector<String>[3];
Mais NB en surbrillance la ligne d'erreur(générique de la création de la matrice), quel est le problème ? Quelle est la façon correcte de le faire ? Je sais qu'il est aussi Arraylist, mais il n'est pas synchronisé, si je veux utiliser de vecteur.
Qu'est ce qu'un vecteur string?
N'est pas vecteur obsolète?
P. S. l'Utilisation de liste de tableaux à la place!!!
Commencez à utiliser resultVectorArray nom de la place!!!! 😉
Vecteur n'est pas déconseillée. Très peu est obsolète.
N'est pas vecteur obsolète?
P. S. l'Utilisation de liste de tableaux à la place!!!
Commencez à utiliser resultVectorArray nom de la place!!!! 😉
Vecteur n'est pas déconseillée. Très peu est obsolète.
OriginalL'auteur Frank | 2009-07-10
Vous devez vous connecter pour publier un commentaire.
En raison de type d'effacement, la JVM ne sait pas au moment de l'exécution que vous avez un
Vector
deString
. Le meilleur qu'il peut faire est de créer une "brute" de Vecteur. Il ne peut pas garantie pour vous que tous lesVector
s contiennentString
s. C'est pourquoi vous obtenez un avertissement de votre IDE.Une façon de contourner cela, il le jeta, comme jgubby suggère. Une autre est de mettre un
List
dans votreVector
s, au lieu d'un tableau.Mais, plus important encore, pourquoi le tableau, n'ont que 3 éléments? Ne serait-il pas préférable de créer une classe avec trois champs à mettre dans votre
Vector
? Avec trois points, ce n'est pas trop de travail, et vous obtenez l'avantage supplémentaire que vous pouvez donner à chacun des trois éléments d'une utile nom, ce qui devrait rendre votre code beaucoup plus clair.Aussi, depuis la version 6 de Java, il existe un certain nombre de nouveau synchronisé
List
implémentations, qui pourrait faire mieux queVector
, commeCopyOnWriteArrayList
, ou enveloppez-les régulièrementList
dans unCollections.synchronizedList
.OriginalL'auteur jqno
Vous ne pouvez pas créer un tableau comme ça, fais ceci:
Je suggère une approche différente - des tableaux de conteneurs de ce type sont souvent assez difficiles à utiliser, et ne pas aider à la compréhension de votre code.
PS Également intéressant de noter que le java naming convention serait
et il n'est pas habituel d'inclure le genre dans le nom (je soupçonne que ce sera litigieuses!), pourquoi ne pas simplement l'appeler "résultat" et de laisser le système de type soucier du type?
Merci, j'utilise cette approche est parce que je sais que la dimension de la matrice, mais ne savent pas combien d'éléments dans le vecteur, les vecteurs grandir comme ils vont, je ne sais pas leurs tailles jusqu'le travail est fait. Toutes les meilleures solutions ?
OriginalL'auteur gubby
Je vous suggère de le garder avec des collections de, faire quelque chose comme
Ensuite, vous pouvez utiliser des génériques avec le Constructeur et pratiquement parlé le même effet
OriginalL'auteur Andreas_D
Vous pouvez également créer:
Ou vous pouvez remplacer
Vector
avec quelques autres de la collection.OriginalL'auteur Artem Barger
l'aide de la réflexion, il serait:
alternativement, vous pouvez utiliser une ArrayList et puis l'enrouler à l'aide de Les Collections de#synchronizedList(java.util.Liste)
parce que vous ne pouvez pas créer un tableau Vector<String> Result_Vector_Array[] = (Vector<String>[]) nouveau Vecteur[3];
OriginalL'auteur dfa
Si vous souhaitez utiliser un synchronisé liste de tableaux, vous pouvez utiliser le synchronizedList méthode en java.util.Les Collections.
OriginalL'auteur Tom
Dois-je comprendre que vous allez utiliser multithread sur ce tableau?...
Si vous n'êtes pas, alors vous n'avez pas à vous soucier de la synchronisation.
Je voudrais:
Imprime true, true
OriginalL'auteur OscarRyz