2010-10-17 14 views
6

Qu'est-ce qu'une manière élégante de contenir des paires de chaînes qui ne sont pas nécessairement des valeurs-clés (peut-être des clés dupliquées), pour une petite collection? List [List [String]] fonctionne évidemment mais semble sale.Scala: bonne façon de garder des paires de chaînes

Vive
Parsa

Répondre

11

tuples sont la structure de données pour représenter des paires idéal.

Utilisez donc une liste de tuples (String, String).

14

List[(String,String)] est la solution étalon:

scala> List(("foo","bar"), ("foo","baz")) 
res1: List[(java.lang.String, java.lang.String)] = List((foo,bar), (foo,baz)) 
+3

Exactement! Ce qui est bien avec les tuples, c'est que l'égalité, la correspondance des motifs, etc. fonctionne comme on pourrait s'y attendre. '(" foo "," bar ") == (" foo "," bar ")' retourne 'true', par exemple. – soc

+3

Vous obtenez également l'ordre lexicographique des paires, ce qui est un très bon cadeau. –

+2

Je suis tombé sur ce joli tour de tuple hier: http://goo.gl/MT6J. Il fait un bon usage du fait que toutes les classes de tuple ont des occurrences de caractère 'Ordering 'définies pour eux. – missingfaktor