2008-10-20 14 views
6

En el procesamiento de datos, con frecuencia necesito crear una estructura de datos de búsqueda para asignar un identificador a otro. Como ejemplo concreto, tomemos una estructura que tenga una correspondencia de 1 a 1 entre el código de 2 caracteres de un país y su nombre completo. En él tendríamos¿Cuál es una buena convención de nomenclatura para un mapa de búsqueda/hash?

AD -> Andorra 
AE -> United Arab Emirates 
AF -> Afghanistan 

¿Cuál es un buen nombre para la variable que mantendría este mapa? Algunas ideas (Voy a usar nombres de camellos de los casos):

countryNameByCode 
nameByCodeLookup 
nameCodeLookup 
codeToName 
+0

Gracias por la edición, Greg. ¡Es esto! Ese es un error, aunque no es tan malo como mi favorito: "tu error". – Trenton

Respuesta

5

Mi voto sería para codeToName en este caso particular, y supongo que eso se generaliza. Eso no quiere decir que es el nombre que me hubiera elegido en todos los casos; eso depende mucho del alcance, la encapsulación adicional, etc. Pero se siente como un buen nombre, que debe ayudar a que su código legible:

String country = codeToName["SV"]; 

se ve bastante bien, debe ser fácilmente comprensible por cualquier persona. Posiblemente cambie la palabra "código" por algo más preciso ("countrycode" sería mi próxima elección).

0

que suele hacer de esta manera:

countryCodeMappingByName

O si la asignación es único, simplemente:

countryCodeMapping

RWendi

+0

realmente? No puedo imaginar tener que escribir eso cada vez que uso ese hashmap. – Claudiu

+0

Sé que es un poco largo para un nombre de variable, pero no es ambiguo, lo cual creo que es importante ... – RWendi

2

Me gusta usar plurales para colecciones.

countryNames 

Editar: countryCodes es erróneo porque está correlacionando de un código a un nombre.

+0

Lástima que Joel aún no haya agregado la función de "revocar respuesta". – Trenton

0

Use algo que suene bien al pronunciarlo. Esto también significa nombrar sus variables clave apropiadamente. Ejemplo:

countryName = countries[countryCode]; 

Esto tiene mucho sentido - le da un countriescountryCode, y devuelve un countryName. Esto sería redundante:

countryName = countryCodesToNames[countryCode]; 
0

En C#, que yo llamaría un tipo que hace esto CountryCodeToNameMapping. Normalmente llamaría a una variable countryCodeToNameMapping, pero en ciertos contextos muy restringidos (, por ejemplo,, lambdas), probablemente lo llamaría c o m.

3
country_name = countries_by_code[country_code] 

Pasa la prueba de "dictado de teléfono", y también suena más como lenguaje natural.

0

Otra votación para simplemente la pluralización de lo que estás mapeando.

por ejemplo. country = countries[code]

Cuestiones relacionadas