java s'hashmap clés comme tableau d'entiers
J'ai une table de hachage comme ce
public HashMap <String,People> valueHashMap = new Hashmap();
Ici la clé de ma table de hachage est le temps en secondes comme une chaîne de caractères, c'est à dire que je suis en ajoutant de la valeur à hashmap comme ce
long timeSinceEpoch = System.currentTimeMillis()/1000;
valueHashMap.put(
Integer.toString((int)timeSinceEpoch)
, people_obj
);
Maintenant je veux obtenir toutes les clés dans la table de hachage dans un tableau la liste d'entiers.
ArrayList<Integer> intKeys = valueHashMap.keys()...
Est-il un moyen de le faire?
- Pourquoi êtes-vous la conversion de int en String avant de le mettre dans la Carte?
- T. Sharma pouvez java hashmap prendre entier clés?
- Oui si vous le définir comme Map<Integer, les Gens>.
- Il peut prendre Entier touches (mais pas int touches).
- Oui, les entiers sont parfaites pour être utilisées comme clés dans une Carte. C'est juste que vous allez mettre un
Integer
au lieu de la primitiveint
dans leMap
mais je ne pense pas que cela devrait être un problème pour vous. Aussi, l'auto-boxing va vous aider à réduire la conversion deint
àInteger
appel. - Ainsi, il semble une incompréhension totale de ma part...Que vous les gars a souligné java hashmap peuvent certainement prendre non des clés de chaîne..j'ai été toucher mon nez dans un mauvais sens..
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de moyen direct de la conversion d'une liste de
String
s à une liste deInteger
s:Soit vous en avez besoin pour redéfinir votre
valueHashMap
comme ceci:Ou vous avez besoin de boucle:
Je vous conseille toutefois d'utiliser le
Long
clés au lieu:alors il n'y aurait pas de casting pour
int
(et vous pouvez les utiliser (1) ci-dessus,Long
à la place).Long
permettra d'éviter les l'An 2038 Problème.Vous ne pouvez pas lancer une Liste d'un type à une Liste d'un autre type, de sorte que vous avez à parcourir les clés et analyser chacun.
Vous avez vraiment le type de problèmes. Pourquoi voulez-vous changer le désire dans les Chaînes pour les stocker dans une carte. Pourquoi ne pas utiliser tout simplement de Long, qui nécessite moins de mémoire et est plus descriptive. Alors pourquoi utiliser Entier.toString pour transformer un long dans une Chaîne de caractères? Par la coulée de votre long int, vous risquez de perdre des informations par. Voici comment le code doit probablement ressembler à:
Vous pouvez utiliser
org.apache.commons.collections.Transformer
classe comme suit.