java et python équivalent de foreach de php ($ array comme $ key = & gt; $ value)
En php, on peut gérer une liste de noms d'états et de leurs abréviations avec un tableau associatif comme ceci:
<?php
$stateArray = array(
"ALABAMA"=>"AL",
"ALASKA"=>"AK",
//etc...
"WYOMING"=>"WY"
);
foreach ($stateArray as $stateName => $stateAbbreviation){
print "The abbreviation for $stateName is $stateAbbreviation.\n\n";
}
?>
De sortie (avec clé de commande préservée):
The abbreviation for ALABAMA is AL.
The abbreviation for ALASKA is AK.
The abbreviation for WYOMING is WY.
EDIT: Notez que l'ordre des éléments du tableau est conservé à la sortie de la version de php. L'implémentation de Java, à l'aide d'une table de hachage, ne garantit pas l'ordre des éléments. De même, le dictionnaire en Python.
Comment est-ce fait en java et python? Je ne trouve que des approches qui fournissent la valeur, étant donné la clé, comme python:
stateDict = {
"ALASKA": "AK",
"WYOMING": "WY",
}
for key in stateDict:
value = stateDict[key]
EDIT: sur la base des réponses, c'était ma solution en python,
# a list of two-tuples
stateList = [
('ALABAMA', 'AL'),
('ALASKA', 'AK'),
('WISCONSIN', 'WI'),
('WYOMING', 'WY'),
]
for name, abbreviation in stateList:
print name, abbreviation
De sortie:
ALABAMA AL
ALASKA AK
WISCONSIN WI
WYOMING WY
Qui est exactement ce qui est nécessaire.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
en Python:
en Java:
en java pour tableau associatif l'utilisation de la Carte
Aussi, pour maintenir l'ordre d'insertion, vous pouvez utiliser une LinkedHashMap au lieu d'une table de hachage.
En python un commandé dictionnaire est disponible en Python 2.7 (pas encore publié) et Python 3.1. Il est appelé OrderedDict.
C'est le code modifié de o948 où vous utilisez un TreeMap au lieu d'une table de hachage. L'Arbre de la carte de préserver la commande des clés par la clé.
Un autre moyen de le faire en Java. Bien qu'une meilleure voie a déjà été posté, celui-ci est syntaxiquement plus proche de votre code php.
Le long des lignes de Alexander réponse...
Le natif de python dictionnaire ne maintient pas la commande pour un maximum d'efficacité de son utilisation primaire: un non-ordonnée de la cartographie des clés à des valeurs.
Je pense à deux solutions:
regarder le code source de OrderedDict et l'inclure dans votre propre programme.
faire une liste qui détient les clés dans l'ordre:
TreeMap n'est pas une réponse à votre question parce qu'il trie les éléments par la clé, tandis que LinkedHashMap préserve l'ordre original. Cependant, TreeMap est plus approprié pour le dictionnaire en raison de tri.